function FileInfo(Path: String): TWin32FindData;
var
Handle: DWord;
begin
Handle := FindFirstFile(PChar( ExcludeTrailingPathDelimiter(Path) ), Result);
if Handle <> INVALID_HANDLE_VALUE then
Windows.FindClose(Handle)
else
Result.ftLastWriteTime.dwLowDateTime := 0
end;
function IsDirectory(Path: String): Boolean;
begin
with FileInfo(Path) do
Result := (ftLastWriteTime.dwLowDateTime <> 0) and (dwFileAttributes and FILE_ATTRIBUTE_DIRECTORY <> 0)
end;
Как проверить существование папки
Как проверить существование папки? Для этого есть какая-нибудь специальная функция?
Или с помощью PathFileExists
Можно и с помощью FindFirstFile - и можно проверить, действительно ли это папка.
Цитата: @pixo $oft
CreateFile не канает?(только ради Бога,не пишите,что с его помощью нельзя открывать папки!)
Example????? На делфях желательно, а то я уже все перепробовал
Цитата:
Example?
CreateFile - подозреваю, простой проверкой на <> INVALID_HANDLE_VALUE.
Через FindFirstFile:
Код:
Проще всего указанной мною функцией.Она принимает 1 параметр и делает всё за ТС
Код:
Code := GetFileAttributes(PChar(Directory));
Result := (Code <> -1) and (FILE_ATTRIBUTE_DIRECTORY and Code <> 0);
Result := (Code <> -1) and (FILE_ATTRIBUTE_DIRECTORY and Code <> 0);
Это кстати не я придумал, оба варианта взяты из стандартных юнитов Delphi.
в c\c++ есть функция access() .
думаю в дельфях\паскалях есть аналог .
Цитата: Matvet
Example????? На делфях желательно, а то я уже все перепробовал
Код:
uses SysUtils;
...
WriteLn(DirectoryExists('C:\Program Files'));
...
WriteLn(DirectoryExists('C:\Program Files'));
Код:
function DirectoryExists(const Directory: string): Boolean;
var
Code: Cardinal;
begin
Code := GetFileAttributes(PChar(Directory));
Result := (Code <> INVALID_FILE_ATTRIBUTES) and (FILE_ATTRIBUTE_DIRECTORY and Code <> 0);
end;
var
Code: Cardinal;
begin
Code := GetFileAttributes(PChar(Directory));
Result := (Code <> INVALID_FILE_ATTRIBUTES) and (FILE_ATTRIBUTE_DIRECTORY and Code <> 0);
end;