Foxtable(狐表)用户栏目专家坐堂 → 用DOS命令来解压缩文件的代码


  共有3306人关注过本帖树形打印复制链接

主题:用DOS命令来解压缩文件的代码

帅哥哟,离线,有人找我吗?
L88919138
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:724 积分:6913 威望:0 精华:0 注册:2012/3/1 7:20:00
用DOS命令来解压缩文件的代码  发帖心情 Post By:2016/9/20 15:59:00 [只看该作者]

求教各位大师:想用DOS命令来解压缩文件,将DOS命令写入诸如下面语句,并用Process用于执行外部程序。

 

FileSys.WriteAllText(s,"del Delay.vbs" & vbcrlf,True,Encoding.Default)


 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2016/9/20 16:07:00 [只看该作者]

换个思路,将你的dos命令做成批处理,在foxtabe运行这个WriteAllText,并运行批处理文件

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2016/9/20 16:13:00 [只看该作者]


 回到顶部
帅哥哟,离线,有人找我吗?
L88919138
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:724 积分:6913 威望:0 精华:0 注册:2012/3/1 7:20:00
  发帖心情 Post By:2016/9/20 16:21:00 [只看该作者]

Dim upathPub As String
If FileSys.FileExists(ProjectPath & "狐表实验.FOXDB.BAK") = True Then
    Return Nothing
Else
    upathPub = ProjectPath.SubString(0,ProjectPath.length-8)
End If
Dim s As String = upathPub & "\鲜迪狐表.bat"
Dim s1 As String = ProjectPath & "\附件\Foxtable.IO.zip"
Dim s2 As String = ProjectPath & "\附件\Foxtable.Io.dll"
If FileSys.FileExists(s) Then
    FileSys.DeleteFile(s)
End If
Dim DR As String = upathPub & "\Foxtable.Io.dll"

FileSys.WriteAllText(s,"@echo off" & vbcrlf,True,Encoding.Default)
FileSys.WriteAllText(s,"@title 正在关闭狐表项目..." & vbcrlf,True,Encoding.Default)
'FileSys.WriteAllText(s,"taskkill /f /im foxtable.exe" & vbcrlf,True,Encoding.Default)
'FileSys.WriteAllText(s,"taskkill /f /im 鲜迪外网.exe" & vbcrlf,True,Encoding.Default)
'FileSys.WriteAllText(s,"taskkill /f /im 鲜迪狐表.exe" & vbcrlf,True,Encoding.Default)
FileSys.WriteAllText(s,"@cls" & vbcrlf,True,Encoding.Default) '清除屏幕.清除删除 foxtable.exe 进程后屏幕反馈的信息.
FileSys.WriteAllText(s,"echo Wscript.Sleep Wscript.Arguments(0) * 1000>Delay.vbs" & vbcrlf,True,Encoding.Default)
FileSys.WriteAllText(s,"Delay.vbs 3" & vbcrlf,True,Encoding.Default)
FileSys.WriteAllText(s,"del Delay.vbs" & vbcrlf,True,Encoding.Default)


FileSys.WriteAllText(s,"Winrar x " & S1 & " " & "-y" & vbcrlf,True,Encoding.Default) '解压缩文件

FileSys.WriteAllText(s,"del /q /f " & DR & vbcrlf,True,Encoding.Default) '删除文件
'FileSys.WriteAllText(s,"copy /D /y " & S2 & " " & dr & vbcrlf,True,Encoding.Default) '复制文件
'FileSys.WriteAllText(s,"del /q /f " & s2 & vbcrlf,True,Encoding.Default) '删除文件
FileSys.WriteAllText(s,"@cls" & vbcrlf,True,Encoding.Default) '清除屏幕反馈的信息.

Dim Proc As New Process '定义一个新的Process
Proc.File = s '指定要打开的文件
Proc.Verb = "Open" '指定动作
Proc.Start()
proc.WaitForExit

 

 

 

老大:上述代码是想在发布项目万一无法启动时,将附件中Foxtable.IO.zip压缩文件先解压后,覆盖项目中的Foxtable.Io.dll文件(经实验这样以后可以正常启动项目),保证项目正常运行。想把这些命令生成“鲜迪狐表.bat”文件,万一项目无法启动后点击“鲜迪狐表.bat”文件让项目恢复启动,现在卡壳在解压缩文件的语句里。

ZipFile命令已经试过,发现真发生项目无法启动时这命令不顶用(当然本人水平有限是主要原因)


 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2016/9/20 16:29:00 [只看该作者]

用dos解压,我也不会,你找资料自己摸索一下吧,有结果记得来分享一下

 

图片点击可在新窗口打开查看


 回到顶部
帅哥哟,离线,有人找我吗?
L88919138
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:724 积分:6913 威望:0 精华:0 注册:2012/3/1 7:20:00
  发帖心情 Post By:2016/9/20 16:34:00 [只看该作者]

我这两天都在找dos解压,就是没什么结果才到论坛上找大师们帮忙,看来还得慢慢摸索图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110738 积分:563610 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/9/20 16:44:00 [只看该作者]

干嘛要压缩和解压缩,dll另外放一个目录,直接拷贝覆盖不行么

 回到顶部
帅哥哟,离线,有人找我吗?
L88919138
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:724 积分:6913 威望:0 精华:0 注册:2012/3/1 7:20:00
  发帖心情 Post By:2016/9/24 13:37:00 [只看该作者]

最后把发布项目里的Foxtable.Io.dll文件属性设置为只读文件,轻松解决问题,不必再苦恼代码怎么写。

 回到顶部