Главная страница
    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.47 MB
Время: 0.03 c
3-1202809800
wild_arg
2008-02-12 12:50
2008.07.20
восстановление БД


2-1213692159
vint45
2008-06-17 12:42
2008.07.20
Потоки. Нужна ли синхронизация?


15-1212744413
PriSL
2008-06-06 13:26
2008.07.20
Генератор отчетов


2-1213704407
tey
2008-06-17 16:06
2008.07.20
работа со строкой


15-1212655691
Alkid
2008-06-05 12:48
2008.07.20
Planner





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский