请问怎么检测磁盘上的某个目录是否存在?(100分)

  • 主题发起人 主题发起人 Orber
  • 开始时间 开始时间
O

Orber

Unregistered / Unconfirmed
GUEST, unregistred user!
请问怎么检测磁盘上的某个目录是否存在?
注:不是文件,是目录。
 
SysUtils or FileCtrl
function DirectoryExists(const Directory: string): Boolean;
怎么用不用我说了吧
 
原来是API,谢谢这位仁兄
 
对呀,pascal的常用函数,记得以后多按F1,这样你就不用问这个了:)
给分呀
 
但此函数有一问题,如过目录所包含的磁盘不存在就会出错:
所以要判断一下:
function DiskDriverReady(FileName:String):Boolean; // 判断磁盘
type
tp= ^ Char;
var
sTmp :String;
ptp :tp;
pTmp :Char;
ErrorMode :Word;
DiskDirver:Byte;
begin
Result:= False ;
Try
sTmp:= ExtractFileDrive(FileName);
if sTmp='' then Exit;
if sTmp[Length(sTmp)]<>':' then Exit;
sTmp:= UpperCase(Stmp[1]);
ptp:= tp(sTmp);
pTmp:= ptp^;
DiskDirver:= ord(pTmp)- 64 ;
if DiskDirver >26 then Exit;
ErrorMode:=SetErrorMode(SEM_FAILCRITICALERRORS);
if DiskFree(DiskDirver) <> -1 then Result:= True;
SetErrorMode(ErrorMode);
except
Exit;
end;
end;

function FileExistFlag(FileName:String):Boolean;// 判断目录
begin
if DiskDriverReady(FileName) then
Result:= FileExists(FileName)
else
Result:= False;
end;
 
后退
顶部