以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  关于FTP的Rename的问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=130493)

--  作者:ap9709130
--  发布时间:2019/1/23 14:51:00
--  关于FTP的Rename的问题
 老师

我今天用Rename命令来更改服务器上的文件名称,发现一个问题.如果要改的文件名称里有"-" 这个符号,就会修改失败.但的如果手动去改,就可以改成"-"这样的?

有没有办法可以用代码修改,然后也能带有"-"这种符号的?

--  作者:有点甜
--  发布时间:2019/1/23 15:30:00
--  

我测试没问题,如

 

Dim ftp As new FTPClient
ftp.Account = "test"
ftp.Password = "test"
ftp.Host = "127.0.0.1"
ftp.Rename("/abc.xls", "/ab-c.xls")
ftp.OpenManager


--  作者:ap9709130
--  发布时间:2019/1/23 15:39:00
--  
我的代码如下:
Dim mc As String = "GRANHYDROGELO-NP"

Dim lj1 As String = "\\备份\\产品资料\\芦芭油\\"
Dim lj As String = "\\备份\\产品资料\\" & mc & "\\"
Dim ftp1 As New FtpClient
ftp1.host= Vars("ip")
ftp1.Account = "123"
ftp1.password = "234"
If ftp1.DirExists(lj1) Then
Output.show(0)
    If ftp1.Rename(lj1,lj) Then
     Output.show(1)
    Else
        Messagebox.show("修改系统目录失败,请联系管理员!")
    End If
Else
Output.show(3)
End If
如果我把"GRANHYDROGEL O-NP" 中的 "-" 去掉,代码可以通过.如果加上"-" 就会弹出对话框,修改目录失败.

--  作者:有点甜
--  发布时间:2019/1/23 18:13:00
--  

我测试了一下,没问题,红色的文件夹,必须先存在,不然无法重命名。

 

Dim ftp As new FTPClient
ftp.Account = "test"
ftp.Password = "test"
ftp.Host = "127.0.0.1"
ftp.Rename("/ab-c.xls", "/GRANHYDROGELO-NP/123c.xls")
ftp.OpenManager


--  作者:ap9709130
--  发布时间:2019/1/24 16:03:00
--  
我是改文件目录名称 ,为什么我的代码就不行? 如果去掉“-” 就可以。太奇怪了。

--  作者:有点蓝
--  发布时间:2019/1/24 16:32:00
--  
改文件目录名称的时候,路径不要加上文件名,

比如:ftp.Rename("/GRANHYDROGELONP", "/GRANHYDROGELO-NP")
而不是:ftp.Rename("/GRANHYDROGELONP/abc.xls", "/GRANHYDROGELO-NP/abc.xls")

另外如果有多级目录。要确保每一个上级目录在电脑上都是存在的