Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как проверить существование папки

47K
28 февраля 2010 года
Matvet
22 / / 06.02.2010
Как проверить существование папки? Для этого есть какая-нибудь специальная функция?
7
28 февраля 2010 года
@pixo $oft
3.4K / / 20.09.2006
CreateFile не канает?(только ради Бога,не пишите,что с его помощью нельзя открывать папки!)
Или с помощью PathFileExists
253
28 февраля 2010 года
Proger_XP
1.5K / / 07.08.2004
Можно и с помощью FindFirstFile - и можно проверить, действительно ли это папка.
47K
28 февраля 2010 года
Matvet
22 / / 06.02.2010
Цитата: @pixo $oft
CreateFile не канает?(только ради Бога,не пишите,что с его помощью нельзя открывать папки!)


Example????? На делфях желательно, а то я уже все перепробовал

253
28 февраля 2010 года
Proger_XP
1.5K / / 07.08.2004
Цитата:
Example?


CreateFile - подозреваю, простой проверкой на <> INVALID_HANDLE_VALUE.

Через FindFirstFile:

Код:
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;
7
28 февраля 2010 года
@pixo $oft
3.4K / / 20.09.2006
Ну здрасьте,будет он специально новый поиск создавать ради только проверки папки.Хорошо хоть,про сравнение с FILE_ATTRIBUTE_DIRECTORY не забыл:)

Проще всего указанной мною функцией.Она принимает 1 параметр и делает всё за ТС
253
28 февраля 2010 года
Proger_XP
1.5K / / 07.08.2004
Можно ещё так:
 
Код:
Code := GetFileAttributes(PChar(Directory));
  Result := (Code <> -1) and (FILE_ATTRIBUTE_DIRECTORY and Code <> 0);

Это кстати не я придумал, оба варианта взяты из стандартных юнитов Delphi.
252
10 марта 2010 года
koderAlex
1.4K / / 07.09.2005
велосипед изобретаете )
в c\c++ есть функция access() .
думаю в дельфях\паскалях есть аналог .
5
10 марта 2010 года
hardcase
4.5K / / 09.08.2005
Цитата: Matvet
Example????? На делфях желательно, а то я уже все перепробовал


 
Код:
uses SysUtils;
...

WriteLn(DirectoryExists('C:\Program Files'));
Код DirectoryExists (взята WIN-версия из SysUtils.pas):
 
Код:
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;
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог