D
dwwang
Unregistered / Unconfirmed
GUEST, unregistred user!
(关于MicroStar的"Delphi傻函数"的问题)
为了证明MicroStar的爱没有白白付出, ^_^
特对FileExists函数进行分析,望众位仁兄评判:
FileExists不能在一个目录里支持*.*,
并不是Delphi的Bug,而是设计者的考虑
与我们不同,或者说考虑不周罢了.
看了FileExists的源码就知道,它调用
FileAge,而该函数对于目录总是返回-1,
即"滤掉"了目录.FileExists对FileAge=-1
的文件返回False.
而任何一个子目录的第一个满足*.*条件的
文件总是 "."(大家不会忘记Dos的目录结构吧!)
它是一个目录,因此FileExits当然返回False.
-- 这也就是为什么根目录总是返回True的原因.
对于D盘以下的其它盘,则第一个文件不一定是什么
类型,因此返回值各异.
为了证明MicroStar的爱没有白白付出, ^_^
特对FileExists函数进行分析,望众位仁兄评判:
FileExists不能在一个目录里支持*.*,
并不是Delphi的Bug,而是设计者的考虑
与我们不同,或者说考虑不周罢了.
看了FileExists的源码就知道,它调用
FileAge,而该函数对于目录总是返回-1,
即"滤掉"了目录.FileExists对FileAge=-1
的文件返回False.
而任何一个子目录的第一个满足*.*条件的
文件总是 "."(大家不会忘记Dos的目录结构吧!)
它是一个目录,因此FileExits当然返回False.
-- 这也就是为什么根目录总是返回True的原因.
对于D盘以下的其它盘,则第一个文件不一定是什么
类型,因此返回值各异.