Текущий архив: 2008.07.20;
Скачать: CL | DM;
Вниз
Выложите функцию DirectoryExists Найти похожие ветки
← →
silvestr (2008-06-04 12:11) [0]Приветствую. На работе стоит древняя D5 в которой нет функии DirectoryExists
Выложите пожалуйста полную функцию из D7 например.
← →
Ega23 © (2008-06-04 12:12) [1]
function DirectoryExists(const Directory: string): Boolean;
{$IFDEF LINUX}
var
st: TStatBuf;
begin
if stat(PChar(Directory), st) = 0 then
Result := S_ISDIR(st.st_mode)
else
Result := False;
end;
{$ENDIF}
{$IFDEF MSWINDOWS}
var
Code: Integer;
begin
Code := GetFileAttributes(PChar(Directory));
Result := (Code <> -1) and (FILE_ATTRIBUTE_DIRECTORY and Code <> 0);
end;
{$ENDIF}
← →
silvestr (2008-06-04 12:14) [2]спасибо
← →
silvestr (2008-06-04 12:15) [3]И еще пожалуйста ForceDirectories функцию.
Буду очень благодарен
← →
@!!ex © (2008-06-04 12:16) [4]А разве FileExists Для директорий не прокатывает?
← →
Ega23 © (2008-06-04 12:19) [5]
function ForceDirectories(Dir: string): Boolean;
var
E: EInOutError;
begin
Result := True;
if Dir = "" then
begin
E := EInOutError.CreateRes(@SCannotCreateDir);
E.ErrorCode := 3;
raise E;
end;
Dir := ExcludeTrailingPathDelimiter(Dir);
{$IFDEF MSWINDOWS}
if (Length(Dir) < 3) or DirectoryExists(Dir)
or (ExtractFilePath(Dir) = Dir) then Exit; // avoid "xyz:\" problem.
{$ENDIF}
{$IFDEF LINUX}
if (Dir = "") or DirectoryExists(Dir) then Exit;
{$ENDIF}
Result := ForceDirectories(ExtractFilePath(Dir)) and CreateDir(Dir);
end;
← →
silvestr (2008-06-04 12:20) [6]> @!!ex © (04.06.08 12:16) [4]
хз вроде нет
> Ega23
спасибо большое.
← →
SergeyIT © (2008-06-04 12:35) [7]
> древняя D5 в которой нет функии DirectoryExists
Вот из древней D5
function DirectoryExists(const Name: string): Boolean;
var
Code: Integer;
begin
Code := GetFileAttributes(PChar(Name));
Result := (Code <> -1) and (FILE_ATTRIBUTE_DIRECTORY and Code <> 0);
end;
← →
Kolan © (2008-06-04 12:39) [8]> На работе стоит древняя D5
Странно, я думал накинуться...
← →
Плохиш © (2008-06-04 13:18) [9]
> Kolan © (04.06.08 12:39) [8]
> Странно, я думал накинуться...
И почему передумал?
← →
SergeyIT © (2008-06-04 13:25) [10]
> Странно, я думал накинуться...
Может и надо...
Я до сих пор на D5. Меня полностью устраивает. Старшие версии еще и не видел.
← →
Германн © (2008-06-04 16:28) [11]
> silvestr (04.06.08 12:11)
>
> Приветствую. На работе стоит древняя D5 в которой нет функии
> DirectoryExists
А вот код из Д1:function DirectoryExists(Name: string): Boolean;
var
SR: TSearchRec;
begin
if Name[Length(Name)] = "\" then Dec(Name[0]);
if (Length(Name) = 2) and (Name[2] = ":") then
Name := Name + "\*.*";
Result := FindFirst(Name, faDirectory, SR) = 0;
Result := Result and (SR.Attr and faDirectory <> 0);
end;
FileCtrl.pas
← →
Anatoly Podgoretsky © (2008-06-04 16:53) [12]> Германн (04.06.2008 16:28:11) [11]
Он нас обманывал.
← →
DVM © (2008-06-04 16:54) [13]
> silvestr (04.06.08 12:11)
> silvestr (04.06.08 12:15) [3]
c миру по нитке - нищему VCL
Страницы: 1 вся ветка
Текущий архив: 2008.07.20;
Скачать: CL | DM;
Память: 0.47 MB
Время: 0.038 c