大家好,因为系统内置的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管理器来上传或是建立的,您是无法操作的,只能获取它们的目录。
不知道大家的测试结果是不是这样呢?
请孤爸亲自测试一下,如果存在问题请修改,没有问题烦请指出代码中存在的错误,十分感谢。
程序如下:请下载后解压就可以运行了,我是用商业版做的,试用版的一样可以打开使用。
想查看源代码的朋友,要以在全局代码中和窗体的加载事件、按钮事件、目录树事件中找到。
全局代码中编写了几个全局函数供调用,这些函数也可以根据您项目的实际需进行修改。
问题解决了:
----------------------------------------------------------------------------------------------------------
看来是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文件中修改就可以了,不过先声明,很慢的哦,在下也求代码的优化,看能否加快访问速度。
以下程序是修改过超时值的,可以下载直接使用,不过很慢的,小心长时间没有反映。不能心急哦!
[此贴子已经被作者于2012-7-21 16:41:35编辑过]