Foxtable(狐表)用户栏目专家坐堂 → 如何判断自己的项目运行路径是在桌面或我的文档?


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

主题:如何判断自己的项目运行路径是在桌面或我的文档?

帅哥,在线噢!
L88919138
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:714 积分:6817 威望:0 精华:0 注册:2012/3/1 7:20:00
如何判断自己的项目运行路径是在桌面或我的文档?  发帖心情 Post By:2014/11/4 15:48:00 [只看该作者]

如何判断自己的发布项目运行路径是在桌面或我的文档?自己设计项目采用FTP服务器来升级,用ProjectPath来获取项目路径,结果发现在电脑桌面、我的文档等特殊路径无法正常升级(其他如C、D盘可以正常升级),在帮助中有提到SpecialFolder,用于获得一些特殊目录的路径,但是例子介绍太少,无法参照,想让大师们解惑下,谢谢。

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/11/4 15:51:00 [只看该作者]

 直接获取就行了。获取以后,跟你的升级路径来对比

 

 If 升级路径.Contains(SpecialFolder.MyDocuments) Then


 回到顶部
帅哥,在线噢!
L88919138
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:714 积分:6817 威望:0 精华:0 注册:2012/3/1 7:20:00
  发帖心情 Post By:2014/11/4 16:18:00 [只看该作者]

 有点甜老师,这是我要删除的项目程序代码,如何获取我的文档路径并与原路径比较,看得不是很明白,能不能帮忙补充下代码,谢谢。

 

Dim upathPub As String = ProjectPath & ".." '需要删除的项目Publish路径,".."表示上一级目录


    Dim s As String = upathPub & "\update.bat"
    If FileSys.FileExists(s) Then
        FileSys.DeleteFile(s)
    End If
    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,"@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,"@cls" & vbcrlf,True,Encoding.Default) '清除屏幕.清除升级文件后屏幕反馈的信息.
    FileSys.WriteAllText(s,"rd /s /q " & upathPub & vbcrlf,True,Encoding.Default) '删除临时文件夹


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


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/11/4 16:24:00 [只看该作者]

If upathPub.Contains(SpecialFolder.MyDocuments) Then

 

End If


 回到顶部
帅哥,在线噢!
L88919138
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:714 积分:6817 威望:0 精华:0 注册:2012/3/1 7:20:00
  发帖心情 Post By:2014/11/4 19:10:00 [只看该作者]

谢谢甜大师指点。图片点击可在新窗口打开查看

 回到顶部
帅哥,在线噢!
L88919138
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:714 积分:6817 威望:0 精华:0 注册:2012/3/1 7:20:00
  发帖心情 Post By:2014/11/4 19:54:00 [只看该作者]

甜大师,不好意思图片点击可在新窗口打开查看,旧问题刚解决,新的问题又冒出,上述程序代码假设检测出项目路径是在我的文档,现在想把upathPub赋值到我的文档里该项目中去,这代码如何写?谢谢。

 

我试了以下代码情况:

If upathPub.Contains(SpecialFolder.MyDocuments) Then

upathPub = SpecialFolder.MyDocuments      这个代码只能定义到我的文档,不能是我的文档里的项目文件夹。

upathPub = SpecialFolder.MyDocuments & ProjectPath & ".."     这个代码运行后报错

End If


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/11/4 20:07:00 [只看该作者]

 不理解你想做什么

 

Dim upathPub As String = ProjectPath & ".."


 回到顶部
帅哥,在线噢!
L88919138
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:714 积分:6817 威望:0 精华:0 注册:2012/3/1 7:20:00
  发帖心情 Post By:2014/11/4 20:18:00 [只看该作者]

比如上述代码是在升级新狐表项目前,先删除旧的发布项目部份的代码,结果发现狐表项目若在C、D盘时运行正常(可以删除项目),而若将项目放在电脑桌面或我的文档就不能删除旧的发布项目,自然会影响后的正常升级。

因此我想在程序中先增加判定项目是否在特殊目录中,若是在特殊目录里,就把对应的路径设为特殊目录(如我的文档等)


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/11/4 20:24:00 [只看该作者]

  你这个应该是空格的问题吧?

 

FileSys.WriteAllText(s,"rd /s /q " & upathPub & vbcrlf,True,Encoding.Default) '删除临时文件夹

 

 改成

 

FileSys.WriteAllText(s,"rd /s /q """ & upathPub & """" & vbcrlf,True,Encoding.Default) '删除临时文件夹


 回到顶部
帅哥,在线噢!
L88919138
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:714 积分:6817 威望:0 精华:0 注册:2012/3/1 7:20:00
  发帖心情 Post By:2014/11/5 6:04:00 [只看该作者]

用甜大师改过的代码运行确实达到我想要的效果,只是不明白正确的代码为什么要加上两个双引用号为什么?还请大师指点下谢谢。


 回到顶部
总数 19 1 2 下一页