Merged revisions 1404 via svnmerge from

svn+ssh://peter@www.freepascal.org/FPC/svn/fpc/trunk

r1404 (florian)
* patch from Luiz Américo:
  1 - Return false when the argument is a directory (like Delphi)
  2 - Return false when passing '*' as argument (like Delphi)
  3 - Its faster 

git-svn-id: branches/fixes_2_0@1433 -
This commit is contained in:
peter 2005-10-16 20:30:25 +00:00
parent 891b0f5338
commit 5e18d1fc5c

View File

@ -247,13 +247,13 @@ end;
Function FileExists (Const FileName : String) : Boolean; Function FileExists (Const FileName : String) : Boolean;
var var
Handle: THandle; Attr:Dword;
FindData: TWin32FindData;
begin begin
Handle := FindFirstFile(Pchar(FileName), FindData); Attr:=GetFileAttributes(PChar(FileName));
Result:=Handle <> INVALID_HANDLE_VALUE; if Attr <> $ffffffff then
If Result then Result:= (Attr and FILE_ATTRIBUTE_DIRECTORY) = 0
Windows.FindClose(Handle); else
Result:=False;
end; end;
@ -354,16 +354,16 @@ end;
Function FileSetAttr (Const Filename : String; Attr: longint) : Longint; Function FileSetAttr (Const Filename : String; Attr: longint) : Longint;
begin begin
if not SetFileAttributes(PChar(FileName), Attr) then if SetFileAttributes(PChar(FileName), Attr) then
Result := GetLastError Result:=0
else else
Result:=0; Result := GetLastError;
end; end;
Function DeleteFile (Const FileName : String) : Boolean; Function DeleteFile (Const FileName : String) : Boolean;
begin begin
DeleteFile:=Windows.DeleteFile(Pchar(FileName)); Result:=Windows.DeleteFile(Pchar(FileName));
end; end;
@ -468,28 +468,19 @@ end;
Function SetCurrentDir (Const NewDir : String) : Boolean; Function SetCurrentDir (Const NewDir : String) : Boolean;
begin begin
{$I-} Result:=SetCurrentDirectory(PChar(NewDir));
ChDir(NewDir);
{$I+}
result := (IOResult = 0);
end; end;
Function CreateDir (Const NewDir : String) : Boolean; Function CreateDir (Const NewDir : String) : Boolean;
begin begin
{$I-} Result:=CreateDirectory(PChar(NewDir),nil);
MkDir(NewDir);
{$I+}
result := (IOResult = 0);
end; end;
Function RemoveDir (Const Dir : String) : Boolean; Function RemoveDir (Const Dir : String) : Boolean;
begin begin
{$I-} Result:=RemoveDirectory(PChar(Dir));
RmDir(Dir);
{$I+}
result := (IOResult = 0);
end; end;