Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.49 MB
Время: 0.016 c
2-1213685432
Муслик
2008-06-17 10:50
2008.07.20
Проследняя запись в таблице


3-1202809800
wild_arg
2008-02-12 12:50
2008.07.20
восстановление БД


15-1212697734
No_Dead
2008-06-06 00:28
2008.07.20
Автоподстройка заблокир.


4-1193206467
Dmitry S
2007-10-24 10:14
2008.07.20
WNetAddConnection2: The network path was not found.


15-1211970166
Randew
2008-05-28 14:22
2008.07.20
Вредно ли мышке постоянно "светится"?