首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > PB >

InternetFindNextFile失去的文件属性不正确

2013-09-04 
InternetFindNextFile得到的文件属性不正确利用WiniNET的API函数,操作FTP。下载某目录下所有文件时,使用Int

InternetFindNextFile得到的文件属性不正确
利用WiniNET的API函数,操作FTP。
下载某目录下所有文件时,使用InterFindNextFile遍历整个目录,其中Thumbs.db文件得到的文件属性不对,Win32_FInd_Data 结构体中fileattributes 是128,即标准文件,但是Thumbs.db是隐藏、系统的文件。
想通过属性判断,隐藏文件不下载的,这样就判断不了了。

希望有了解情况的,帮忙解答一下,谢谢 API FTP WININET
[解决办法]
换种方式,如果隐藏文件下载不了,如果下载未出错,可以考虑判断返回值来处理

如果程序出错,可以考虑用try 试试



Try
   If ls_Array[2] = 'Hello' Then
      MessageBox("","2存在")
   End If 
Catch(RunTimeError e)
   MessageBox("","应该是越界了")
End Try
[解决办法]
Thumbs.db 这个文件没有必要传呀

直接写成不处理的特例
if 文件名='Thumbs.db’ then
next
end if 
[解决办法]
我现在没有PB在机上,只能盲猜,不能测试

readonly 是 1//低一位
hidden 是 2//低二位
system 是 4//低三位


if mod(fileattributes,4)/2 = 1 then
//这个是hidden
end if

if mod(fileattributes,8)/4 = 1 then
//这个是system
end if

盲打的,可能还要试一下。
[解决办法]

引用:
Quote: 引用:

换种方式,如果隐藏文件下载不了,如果下载未出错,可以考虑判断返回值来处理

如果程序出错,可以考虑用try 试试



Try
   If ls_Array[2] = 'Hello' Then
      MessageBox("","2存在")
   End If 
Catch(RunTimeError e)
   MessageBox("","应该是越界了")
End Try

是的,下载出错,可能是隐藏、系统文件,不让覆盖的缘故吧,我按2楼的方法处理的,我比较疑惑的是API的返回值。


没找到个参考资料查一下,返回值代表什么意思?
[解决办法]
引用:
Quote: 引用:

Thumbs.db 这个文件没有必要传呀

直接写成不处理的特例
if 文件名='Thumbs.db’ then


next
end if 


我就是这样处理的,但是总觉得别扭。


引用:
Quote: 引用:

Thumbs.db 这个文件没有必要传呀

直接写成不处理的特例
if 文件名='Thumbs.db’ then
next
end if 

我就是这样处理的,但是总觉得别扭。


相比较,我认为把这个 Thumbs.db 文件传出去更危险
貌似平时目录下没有这个文件,但是这个目录下有了图片,而且又打开过,就有可能莫名其妙的多出了这个文件 
[解决办法]
返回值是128,那就真晕了

热点排行