以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  自制FTP管理器,请帮忙测试!(问题已初步解决,不过建议孤爸加多些FTP的属性或是方法)  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=21684)

--  作者:liguichuan
--  发布时间:2012/7/21 10:42:00
--  自制FTP管理器,请帮忙测试!(问题已初步解决,不过建议孤爸加多些FTP的属性或是方法)

大家好,因为系统内置的FTP管理器无法根据权限来限制某一些按钮是否可以禁用,于是想到自己编一个FTP管理器。

 

只要加几个全局变量,并在自编的FTP管理器的AfterLoad事件中判断这些全局变量然后来决定是否使用某个按钮就可以了。当然也可以改造成其它的函数格式调用。如果想锁定某些特定的目录,也可以改造一下,还是在自编的FTP管理器的AfterLoad事件中将:Dim 根目录 As String = "/" \'红色的部分换成要锁定的目录就可以了。

 

现在我把自己编写的一个简单的FTP文件管理器放上来供大家测试。

 

不知是怎么回事,有可能是系统提供的FTP功能存在BUG,也可能是我的代码有问题,这个自编的FTP管理器只能管理通过该管理器上传的文件,如果文件是手工放到FTP服务器上的(复制或是通过基它的FTP软件上传),那么是无法通过该自编的管理器实现(重命名、删除)管理操作的。

 

请大家测试一下,也请孤爸抽个空测试一下,之前我的发过贴子提到这些问题,当时不清楚什么时候行什么不候不行,现在看出了一点规律了。所以放上来供大家测试,希望如果是真的存在BUG,下次更新时可以把该问题解决掉。

 

另外,还建议增加以下的功能:

 

获取文件修改时间的功能;

 

重命名文件夹功能;

 

断点上下传功能;

 

截图如下:

 

 

 第一步:在程序所在的目录下找到《FTP服务器设置.txt》文件;


图片点击可在新窗口打开查看此主题相关图片如下:ftp使用说明1.png
图片点击可在新窗口打开查看

 

第二步:打开该文件,修改与您自身相对应的FTP服务器地址、用户名、密码三个选项(注意冒号是中文状态下的冒号,其实这些都无须修改,只改以上三个地方就行了。);


图片点击可在新窗口打开查看此主题相关图片如下:ftp使用说明2.png
图片点击可在新窗口打开查看

 

第三步:打开项目,在表A对应的窗口中打开FTP窗口,假如我们已经通过手工复制和新建了以下的文件夹及文件在FTP服务器的目录下了,刷新一下就可以看到如下界面;

图片点击可在新窗口打开查看此主题相关图片如下:ftp使用说明3.png
图片点击可在新窗口打开查看

 

第四步:现在我们来通过自编的FTP管理器来新建一个文件夹“NEW”,以及随便上传几个文件(通过FTP管理器上传的文件会自动进行重命名带有时间的文件名)


图片点击可在新窗口打开查看此主题相关图片如下:ftp使用说明4.png
图片点击可在新窗口打开查看

 

第五步:现在我们来试着删除一下手工建立的文件,可以发现失败了,其实删除手工建立的文件夹也一样会失败。

图片点击可在新窗口打开查看此主题相关图片如下:ftp使用说明5.png
图片点击可在新窗口打开查看

 

第六步:那么我们试着来对通过FTP管理器建立、上传的文件进来操作,发现可以成功。

图片点击可在新窗口打开查看此主题相关图片如下:ftp使用说明6.png
图片点击可在新窗口打开查看


图片点击可在新窗口打开查看此主题相关图片如下:ftp使用说明7.png
图片点击可在新窗口打开查看


图片点击可在新窗口打开查看此主题相关图片如下:ftp使用说明8.png
图片点击可在新窗口打开查看

 

操作到最后,只要是通过自编的FTP管理器上传的文件或是建立的文件夹都可以执行正常的管理操作,但是如果这些文件夹或是文件是原来FTP服务器上面就有的,而不是通过自编的FTP管理器来上传或是建立的,您是无法操作的,只能获取它们的目录。

 

不知道大家的测试结果是不是这样呢?

 

请孤爸亲自测试一下,如果存在问题请修改,没有问题烦请指出代码中存在的错误,十分感谢。

 


 程序如下:请下载后解压就可以运行了,我是用商业版做的,试用版的一样可以打开使用。

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:ftp文件管理器.rar

 

 

想查看源代码的朋友,要以在全局代码中和窗体的加载事件、按钮事件、目录树事件中找到。

全局代码中编写了几个全局函数供调用,这些函数也可以根据您项目的实际需进行修改。

 

 

问题解决了:

----------------------------------------------------------------------------------------------------------

看来是IIS搭建的FTP的问题了。改用“Serv-U.exe”后,可以正常操作,无论文件或是文件夹是不是手工放上去的。

 

请大家试一下,如果在用"Serv-U.exe"的过程中发现中文显示乱码的问题的,请参考以下这一编贴子的内容,里面有人给出了解决的方法。

http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=15980&skin=0

 

无非就是:

设置步骤: 
  
    1、打开Serv-U控制台,点击“限制和设置”--“为域配置高级FTP命令设置和行为”(有的版本是显示用户自定义设置)。

    2、在FTP设置中找到OPTS UTF8命令,右击禁用此命令。

    3、点击下面的“全局属性”。 
    4、在出来的FTP命令属性选项卡中,“高级选项”里,把“对所有收发的路径和文件名使用UFT-8编码”前面的钩去掉!

    5、以后再上传中文文件,就不会出现乱码问题啦。

 

 

如果需要使用广域网的FTP服务器,最好设置一下超时值,方法是,在每处有定义的地方加一句超时设置(下面语句的红色部分)。

Dim ftp1 As new FTPClient
ftp1.Host = ftp_read("主机")
ftp1.Account = ftp_read("用户")
ftp1.Password = ftp_read("密码")
ftp1.TimeOut = 50000 \'(整数型,用于设置尝试操作的毫秒数,默认为10000,也就是10秒。)

 

大家可以到以下这个网站或其它的网站申请一下FTP免费空间试用,据说这个空间是在香港,不过速度真的慢得可以。这样子操作FTP我想是个人都会给气死。

申请网址:http://www.3v.cm

 

如果不想申请的朋友也想测试的,可以使用以下我申请的内容:

FTP主机地址:oms.35free.net
登陆用户名称:oms
登陆用户密码:omsoms

只需要在程序目录下面的TXT文件中修改就可以了,不过先声明,很慢的哦,在下也求代码的优化,看能否加快访问速度。

 

以下程序是修改过超时值的,可以下载直接使用,不过很慢的,小心长时间没有反映。不能心急哦!

 

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:ftp文件管理器(已修改了超时值可远程操作).rar

[此贴子已经被作者于2012-7-21 16:41:35编辑过]

--  作者:liguichuan
--  发布时间:2012/7/21 11:11:00
--  
以下是引用muhua在2012-7-21 11:07:00的发言:

文件呢? 你没把文件发上来,人家怎么测试???

 

呵呵,不好意思,忘记放上来了,已经在1楼重新上传了,请查收。


--  作者:lihe60
--  发布时间:2012/7/21 12:57:00
--  

图片点击可在新窗口打开查看此主题相关图片如下:未命名.bmp
图片点击可在新窗口打开查看

--  作者:lihe60
--  发布时间:2012/7/21 13:00:00
--  

这个应该设精。


--  作者:liguichuan
--  发布时间:2012/7/21 13:19:00
--  
以下是引用lihe60在2012-7-21 12:57:00的发言:

图片点击可在新窗口打开查看此主题相关图片如下:未命名.bmp
图片点击可在新窗口打开查看

您应该:在程序所在的目录下找到《FTP服务器设置.txt》文件,并打开修改FTP服务器IP地址及用户名、密码。


--  作者:lihe60
--  发布时间:2012/7/21 14:37:00
--  
我换了IP,同样有相同的提示。
--  作者:lihe60
--  发布时间:2012/7/21 14:46:00
--  

Public Function Ftp_Read(s As String) As String

这个代码是什么意义?


--  作者:lihe60
--  发布时间:2012/7/21 14:47:00
--  
用文件管理器可以打开FTP的。
--  作者:liguichuan
--  发布时间:2012/7/21 15:22:00
--  
以下是引用lihe60在2012-7-21 14:46:00的发言:

Public Function Ftp_Read(s As String) As String

这个代码是什么意义?

定义一个公共函数,这个函数是字符型的。且该函数还有一个字符型的参数。

 

 

[此贴子已经被作者于2012-7-21 15:24:38编辑过]

--  作者:liguichuan
--  发布时间:2012/7/21 15:23:00
--  
以下是引用lihe60在2012-7-21 14:47:00的发言:
用文件管理器可以打开FTP的。

是可以呀,我没有说过不可以呀,系统自带的不是目录树,还有孤爸不提供接口,我们无法控制它上面的按钮哪些可用哪些不可用呀。