用FindFirst、findnext找到的"..","." 为什么会有这个?(7分)

  • 主题发起人 主题发起人 winni
  • 开始时间 开始时间
W

winni

Unregistered / Unconfirmed
GUEST, unregistred user!
有什么典故?
 
. = 当前目录
.. 上级目录
 
每个文件夹都有这2个的 你用判断把它去掉就可以了
 
给你一段例子
procedure TFrmMain.FindFiles(const pszDir: string);
var
FileInfo:TSearchRec;
FindValue:Integer;
pszTemp:string;
strDir:string;
begin
if pszDir[Length(pszDir)]<>'/' then
strDir:=pszDir+'/'
else
strDir:=pszDir;
FindValue:=FindFirst(strDir+'*.*',faAnyFile,FileInfo);
if FindValue=0 then
repeat
pszTemp:=FileInfo.Name;
if (pszTemp='.') or (pszTemp='..')then
begin
FindNext(FileInfo);
Continue;
end;
if (FileInfo.Attr and FILE_ATTRIBUTE_DIRECTORY)<>0 then
FindFiles(strDir+pszTemp)
else
lstFileName.Items.Add(strDir+pszTemp);
until
FindNext(FileInfo)<>0;
FindClose(FileInfo);
end;
 
为什么要设这个? 有什么由来吗
 
这是DOS时期就有的了。有了这两个,相对目录的定位就方便多了,不至于每次都要写绝对路径。
 
有了答案不结帖,楼主真不厚道
 
接受答案了.
 
后退
顶部