Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.06.29;
Скачать: [xml.tar.bz2];

Вниз

Директория из TSearchRec   Найти похожие ветки 

 
Pasha L   (2005-06-08 00:00) [0]

Здравствуйте! У меня вопрос, связанный с TSearchRec. Как из TSearchRec узнать директорию, в которой находится файл?


 
Eraser ©   (2005-06-08 00:08) [1]

Pasha L   (08.06.05 00:00)

Я так понимаю нужно узать находится ли како-либо файл в директории?

Или необхдимо выделить директорию из пути к файлу, тогда ExtractFileDir.


 
Pasha L   (2005-06-08 00:14) [2]

Нее. Извините за неправильность вопроса. Я произвел findFirst или findNext. Имя, размер и ещё пару вещей о файле я уже знаю. А как узнать полный адрес, имея при себе только информацию от уже имеющегося tsearchrec.


 
Юрий Зотов ©   (2005-06-08 00:27) [3]

Где искали - там и находится. Справочку по FindFirst гляньте - там первым параметром идет каталог. Вот в нем и находится.


 
Eraser ©   (2005-06-08 00:27) [4]

Копай сюда:


  type
  TSearchRec = record
   Time: Integer;
   Size: Integer;
   Attr: Integer;
   Name: TFileName;
   ExcludeAttr: Integer;
   FindHandle: THandle;
   FindData: TWin32FindData;
end;


 
Pasha L   (2005-06-08 00:58) [5]

Eraser, накопал я, только не того, что нужно


 
-=XP=- ©   (2005-06-08 01:48) [6]

Mask := "C:\Program Files\*.*";
FindFirst(Mask, Attrib, SearchRec);
Folder := ExtractFilePath(Mask); // C:\Program Files\


 
Fay ©   (2005-06-08 09:33) [7]

2 Юрий Зотов ©   (08.06.05 0:27) [3]
>> там первым параметром идет каталог
В смысле?


 
Anatoly Podgoretsky ©   (2005-06-08 09:50) [8]

Pasha L   (08.06.05 00:00)  
Нельзя, эта информация в записи отсутствует.


 
Pasha L   (2005-06-08 13:52) [9]

Ясно. Просто я хотел создать функцию, которая содержала бы всего один аргумент -  типа TSearchRec. И чтобы из этого аргумента уже бралась вся инфа о файле. Значит просто надо второй аргумент делать. Спасибо.


 
Юрий Зотов ©   (2005-06-08 15:16) [10]

> Fay ©   (08.06.05 09:33) [7]

В смысле - открываем справку и смотрим. Что же тут неясного?


 
Eraser ©   (2005-06-08 16:29) [11]

Anatoly Podgoretsky ©   (08.06.05 09:50) [8]

А как же параметр

typedef struct _WIN32_FIND_DATA { // wfd  
   DWORD dwFileAttributes;
   FILETIME ftCreationTime;
   FILETIME ftLastAccessTime;
   FILETIME ftLastWriteTime;
   DWORD    nFileSizeHigh;
   DWORD    nFileSizeLow;
   DWORD    dwReserved0;
   DWORD    dwReserved1;
   TCHAR    cFileName[ MAX_PATH ];
   TCHAR    cAlternateFileName[ 14 ];
} WIN32_FIND_DATA;

или там только имя файла без пути?


 
Anatoly Podgoretsky ©   (2005-06-08 16:31) [12]

Имени папки там нет.


 
Fay ©   (2005-06-08 17:33) [13]

2 Юрий Зотов ©   (08.06.05 15:16) [10]
Не нашёл я в справке слов о том, что первый параметр - именно папка. Откуда у Вас такая уверенность?


 
stakan ©   (2005-06-08 17:40) [14]


function FindFirst(const Path: string; Attr: Integer; var F:    
 TSearchRec): Integer;

Description

FindFirst searches the directory specified by Path for the first file that matches the file name implied by Path and the attributes specified by the Attr parameter. The result is returned in the F parameter. Use the fields of this search record to extract the information needed. FindFirst returns 0 if a file was successfully located, otherwise, it returns an error code.

The Path constant parameter is the directory and file name mask, including wildcard characters. For example, "c:\test\*.*" specifies all files in the C:\TEST directory).


 
Fay ©   (2005-06-08 18:06) [15]

2 stakan ©   (08.06.05 17:40) [14]

c:\test\qwe.* - это папка?


 
Юрий Зотов ©   (2005-06-08 19:18) [16]

> Fay ©   (08.06.05 18:06) [15]

Во-первых, запросто может быть и папкой. Во-вторых, процесс под названием "чуть подумать" еще, вроде бы, не отменяли.


 
Anatoly Podgoretsky ©   (2005-06-08 19:46) [17]

Fay ©   (08.06.05 18:06) [15]
Это маска, а что именно папки или файлы можно узнать после вызова и получения положительно ответа
Даже такая форма допустима c:\test\qwe
более того в некоторых случаях будет работать и рекурсия.



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2005.06.29;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.042 c
1-1118127516
Andy BitOff
2005-06-07 10:58
2005.06.29
Ошибка: "Cannot open file ..."


14-1117548364
Holy
2005-05-31 18:06
2005.06.29
Что означает номер чипсета?


1-1118051551
SergeiX
2005-06-06 13:52
2005.06.29
как убрать разбиение на страницы


4-1114757945
Merlot
2005-04-29 10:59
2005.06.29
Как отловить выключение windows.


1-1118127057
-=snoop=-
2005-06-07 10:50
2005.06.29
добавление объекта на форму через код....





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский