Форум: "Основная";
Текущий архив: 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