Public Declare Function PathFileExists Lib "shlwapi.dll" Alias "PathFileExistsA" (ByVal lpszPath As String) As Long Public Declare Function PathIsDirectory Lib "shlwapi.dll" Alias "PathIsDirectoryA" (ByVal lpszPath As String) As LongIf PathFileExists(<文件名>) <> 0 And PathIsDirectory(<文件名>) = 0 Then 文件存在。PathFileExists 判断文件、目录是否存在,PathIsDirectory 判断目录是否存在。返回非零值表示存在。上面的判断语句判断<文件名>是否存在,并且确认它不是目录。系统兼容性: Windows NT/2000: Requires Windows 2000 (or Windows NT 4.0 with Internet Explorer 4.0 or later). Windows 95/98/Me: Requires Windows 98 (or Windows 95 with Internet Explorer 4.0 or later).
如果按照你的方法,◇首先:
标准的vbDirectory放着不用,要硬编码使用16?
标准的vbNormal放着不用,要硬编码使用0?
如果vb改变了常量值,你的代码不是要改么?◇其次,
你判断的是给定目录的属性“是”vbDirectory(目录)
我这里判断是给定目录的属性“有”vbDirectory(目录)
当目录含有不只一个属性,如隐藏、系统等其它属性的时候,你的判断是不全面的。详细请参考:
关于判断文件/文件夹是否存在:
http://www.csdn.net/expert/topic/375/375537.xml
不经过认真测试和学习,而来否定别人的方法,才是非常坏的习惯吖!我纯粹是在讨论技术,别在意。
Public Declare Function PathIsDirectory Lib "shlwapi.dll" Alias "PathIsDirectoryA" (ByVal lpszPath As String) As LongIf PathFileExists(<文件名>) <> 0 And PathIsDirectory(<文件名>) = 0 Then 文件存在。PathFileExists 判断文件、目录是否存在,PathIsDirectory 判断目录是否存在。返回非零值表示存在。上面的判断语句判断<文件名>是否存在,并且确认它不是目录。系统兼容性:
Windows NT/2000: Requires Windows 2000 (or Windows NT 4.0 with Internet Explorer 4.0 or later).
Windows 95/98/Me: Requires Windows 98 (or Windows 95 with Internet Explorer 4.0 or later).
0也好,16也好,它们都是2的指数,
这种属性值可以“或”在一起用。在请你告诉我,就判断一个Pathname到底是文件还是目录,是存在还是不存在这个问题,Dir如何作不到?dir又如何不能给出一个更加肯定的结果呢?
同样使用DIR,就以你给出的三个函数的入口和返回值为标准,写出的代码一定
比你的短和可靠,同时更易读,你相信吗?我并不反对使用API,在我的程序中只有万不得以才使用,否则直接用C/C++好了,
干嘛用VB.
0也好,16也好,它们都是2的指数,
这种属性值都是各占1bit,可以“或”在一起用。在请你告诉我,就判断一个Pathname到底是文件还是目录,
是存在还是不存在这个问题,Dir()如何作不到?
dir()又如何不能给出一个更加肯定的结果呢?同样使用DIR(),就以你给出的三个函数的入口和返回值为标准,
(如果你要求更多的功能,就没法讨论了)
写出的代码一定比你的短和可靠,同时更易读,你相信吗?
我并不反对使用API,在我的程序中只有万不得以才使用,否则直接用C/C++好了。
你的比方不恰当,应该是明明坐飞机可以到美国,偏要说先
坐火车到俄罗斯,然后作破冰船过白令海峡,还得作一段爬犁穿过阿拉斯加,
然后再……我只是觉得这个方法容易误导一些VB程序员,以为使用了API就是上了个
层次……
我不过是说,csdn中的东西,是精髓还是糟粕,你自己批判的吸收,
大家这样讲话,会伤害人家的heart的