以文本方式查看主题 - 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服务器地址、用户名、密码三个选项(注意冒号是中文状态下的冒号,其实这些都无须修改,只改以上三个地方就行了。);
第三步:打开项目,在表A对应的窗口中打开FTP窗口,假如我们已经通过手工复制和新建了以下的文件夹及文件在FTP服务器的目录下了,刷新一下就可以看到如下界面;
第四步:现在我们来通过自编的FTP管理器来新建一个文件夹“NEW”,以及随便上传几个文件(通过FTP管理器上传的文件会自动进行重命名带有时间的文件名)
第五步:现在我们来试着删除一下手工建立的文件,可以发现失败了,其实删除手工建立的文件夹也一样会失败。
第六步:那么我们试着来对通过FTP管理器建立、上传的文件进来操作,发现可以成功。
操作到最后,只要是通过自编的FTP管理器上传的文件或是建立的文件夹都可以执行正常的管理操作,但是如果这些文件夹或是文件是原来FTP服务器上面就有的,而不是通过自编的FTP管理器来上传或是建立的,您是无法操作的,只能获取它们的目录。
不知道大家的测试结果是不是这样呢?
请孤爸亲自测试一下,如果存在问题请修改,没有问题烦请指出代码中存在的错误,十分感谢。
想查看源代码的朋友,要以在全局代码中和窗体的加载事件、按钮事件、目录树事件中找到。 全局代码中编写了几个全局函数供调用,这些函数也可以根据您项目的实际需进行修改。
问题解决了: ---------------------------------------------------------------------------------------------------------- 看来是IIS搭建的FTP的问题了。改用“Serv-U.exe”后,可以正常操作,无论文件或是文件夹是不是手工放上去的。
请大家试一下,如果在用"Serv-U.exe"的过程中发现中文显示乱码的问题的,请参考以下这一编贴子的内容,里面有人给出了解决的方法。 http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=15980&skin=0
无非就是: 设置步骤: 2、在FTP设置中找到OPTS UTF8命令,右击禁用此命令。 3、点击下面的“全局属性”。 5、以后再上传中文文件,就不会出现乱码问题啦。
如果需要使用广域网的FTP服务器,最好设置一下超时值,方法是,在每处有定义的地方加一句超时设置(下面语句的红色部分)。 Dim ftp1 As new FTPClient
大家可以到以下这个网站或其它的网站申请一下FTP免费空间试用,据说这个空间是在香港,不过速度真的慢得可以。这样子操作FTP我想是个人都会给气死。
如果不想申请的朋友也想测试的,可以使用以下我申请的内容: FTP主机地址:oms.35free.net 只需要在程序目录下面的TXT文件中修改就可以了,不过先声明,很慢的哦,在下也求代码的优化,看能否加快访问速度。
以下程序是修改过超时值的,可以下载直接使用,不过很慢的,小心长时间没有反映。不能心急哦!
[此贴子已经被作者于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 -- 您应该:在程序所在的目录下找到《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的。 是可以呀,我没有说过不可以呀,系统自带的不是目录树,还有孤爸不提供接口,我们无法控制它上面的按钮哪些可用哪些不可用呀。 |