以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]FTP无法创建有特殊汉字的文件夹-已解决-须逐层创建  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=109555)

--  作者:shenyl0211
--  发布时间:2017/11/14 17:25:00
--  [求助]FTP无法创建有特殊汉字的文件夹-已解决-须逐层创建
发现有大量用户的附件会上传到FTP根目录下,而不是ftp1.RootDir指定的“/合同评审/用户名/年月日时分”文件夹,经测试发现,这是特殊汉字造成的,例如:
1、有一个同事名为“蕾”,则无法用ftp1.MakeDir直接创建“/合同评审/X蕾/201711141234”文件夹,增加附件时会直接进入根目录;但通过用ftp1.OpenManager手工创建“/合同评审/X蕾”文件夹后,下级文件夹“201711141234”可以创建,上传文件的位置就正确了。
2、同理,有一个同事姓“甑”,则无法用ftp1.MakeDir直接创建“/合同评审/甑XX/201711141234”文件夹,增加附件时也直接进入根目录;但通过用ftp1.OpenManager手工创建“/合同评审/甑XX”文件夹后,下级文件夹“201711141234”可以创建,上传文件的位置正确。
请问各位高手,该怎么解决这个问题呢?

[此贴子已经被作者于2017/11/14 17:54:59编辑过]

--  作者:有点甜
--  发布时间:2017/11/14 17:47:00
--  

不是汉字的问题吧?makedir是单层创建目录的,不支持多层直接创建。也就是必须一个一个目录创建。

 

你执行下面代码测试

 

Dim ftp1 As New FtpClient
ftp1.Host="127.0.0.1"
ftp1.Account = "test"
ftp1.Password = "test"
ftp1.UTF8 = true
msgbox(ftp1.MakeDir("/合同评审/甑XX/201711141234"))
msgbox(ftp1.MakeDir("/合同评审/"))
msgbox(ftp1.MakeDir("/合同评审/甑XX/201711141234"))
msgbox(ftp1.MakeDir("/合同评审/甑XX"))
msgbox(ftp1.MakeDir("/合同评审/甑XX/201711141234"))

[此贴子已经被作者于2017/11/14 17:47:49编辑过]

--  作者:shenyl0211
--  发布时间:2017/11/14 17:53:00
--  
谢谢甜版。解决了。