Текущий архив: 2007.08.19;
Скачать: CL | DM;
ВнизПоиск файлов возвращает артефакты Найти похожие ветки
← →
Sdubaruhnul (2007-07-18 21:51) [0]Для поиска файлов использую юникодные FindFirstFileW и ко. Ищу: "c:\test\*". Получаю такие результаты поиска:
.
..
folder1
folder2
hello5.txt
hello6.txt
Что бы это могло значить?
← →
Anatoly Podgoretsky © (2007-07-18 23:42) [1]> Sdubaruhnul (18.07.2007 21:51:00) [0]
Вроде все нормально, нет причин для беспокойства.
← →
Sdubaruhnul (2007-07-18 23:45) [2]А что это за точки вначале?
← →
turbouser © (2007-07-18 23:47) [3]
> Sdubaruhnul (18.07.07 23:45) [2]
>
> А что это за точки вначале?
root директории :)
← →
Sdubaruhnul (2007-07-19 00:24) [4]Короче, ясно что это (текущая и родительская папки).
По мне так это очередной бред, который нужно запомнить.
← →
antonn © (2007-07-19 00:43) [5]ты главное когда будешь делать рекурсивное удаление файлов, не забудь про эти точки%)
← →
Sdubaruhnul (2007-07-19 00:56) [6]>ты главное когда будешь делать рекурсивное удаление файлов, не забудь про эти точки%)
Не понял... Я их собирался игнорировать.
← →
Германн © (2007-07-19 01:00) [7]
> Sdubaruhnul (19.07.07 00:56) [6]
>
> >ты главное когда будешь делать рекурсивное удаление файлов,
> не забудь про эти точки%)
>
> Не понял... Я их собирался игнорировать.
>
Значит забудь про обход вложенных папок.
← →
Anatoly Podgoretsky © (2007-07-19 01:07) [8]> Sdubaruhnul (19.07.2007 00:56:06) [6]
Надо не собираться, а игнорировать
← →
hide (2007-07-25 19:34) [9]Cкажите, как искать во всём диске = c:\ используя findfirst/findnext?
В отдельных папках находит, а во всём диске не хочет находить.
даже c:\. и c:\.. пробовал - ничего не найдено, результат findfirst=2
← →
Virgo_Style © (2007-07-25 19:40) [10]hide (25.07.07 19:34) [9]
Чудес не бывает, ты должен организовать поиск в каждой из папок диска
← →
hide (2007-07-25 19:53) [11]спасибо
← →
hide (2007-07-25 21:19) [12]Virgo_Style ©
не верно и не спасибо.
ищет и во всём диске, только есть особенности - не находит "c:\", "c:\.", "c:\..", а всё остальное содержимое находит.
← →
{RASkov} © (2007-07-25 22:01) [13]> [12] hide (25.07.07 21:19)
> не находит "c:\",
Угу.... а так:findfirst("C:\*.*", faAnyFile, SR)
?
Маску нужно указывать.... т.е. я хочу сказать, чтоfindfirst("C:\Windows", faAnyFile, SR)
найдет каталог Windows на диске С (если он там есть)
а такfindfirst("C:\Windows\", faAnyFile, SR)
нихрена ничего ненайдет :(.....
Так, что ты тут зря со своими С:\ наезжаешь.....
← →
Virgo_Style © (2007-07-25 22:08) [14]hide (25.07.07 21:19) [12]
не верно и не спасибо.
Вай, спасибо отобрали... Извиняй, телепатор сломался, а без него понять твой вопрос затруднительно.
← →
{RASkov} © (2007-07-25 22:09) [15]> [12] hide (25.07.07 21:19)
> "c:\.", "c:\..",
....а текущий и родительский каталоги в данной функции могут присутствовать вначале пути, но никак не в конце...
т.е.findfirst(".\*.*", faAnyFile, SR)
илиfindfirst("..\*.*", faAnyFile, SR)
> Так, что ты тут зря со своими С:\ наезжаешь.....
Близко не принимай.... смайл забыл поставить.
← →
Плохиш © (2007-07-26 11:07) [16]
> findfirst("C:\*.*", faAnyFile, SR)
Т.е. файлы без расширений не нужны?
← →
hide (2007-07-26 11:38) [17]Плохиш ©
Так ищутся и без расширений. Только faAnyFile = скрытые не найдёт, что бы все искало нужно все эти fa~ сплюсовать.
Виндовый поиск ищет ещё и внутри архивов, я не сразу понял почему у него на тыщу файлов больше находится :)
← →
{RASkov} © (2007-07-26 11:53) [18]> > findfirst("C:\*.*", faAnyFile, SR)
>
> Т.е. файлы без расширений не нужны?
> Так ищутся и без расширений.
Вообще-то наверное правильнее, если все подряд искать, то нужно просто * указывать..... ибо маска есть маска.... + "правильный" второй параметр...
← →
Плохиш © (2007-07-26 11:56) [19]
> hide (26.07.07 11:38) [17]
> Плохиш ©
> Так ищутся и без расширений.
Хм, действительно, когда-то столкнулся с этим, ладно [16] снимается.
> Только faAnyFile = скрытые не найдёт
Какое различие между передачей в качестве параметра $3f или $01+$02+$04+$08+$10+$20 ?
← →
hide (2007-07-26 11:58) [20]По логике да, но пока не сплюсовал все - скрытые не искались :)
← →
dima_bil (2007-07-26 17:51) [21]procedure GetFiles( APath: string );
var
sr: TSearchRec;
isFound: boolean;
ListItem: TListItem;
temp: string;
begin
isFound := FindFirst( APath + "*.kl", faAnyFile, sr ) = 0;
while isFound do
begin
if ( sr.Name <> "." ) and ( sr.Name <> ".." ) and
( ( sr.Attr and faDirectory ) <> faDirectory ) then
begin
ListItem := Form1.ListView1.Items.Add;
temp := ExtractFileName( sr.Name );
if LastDelimiter( ".", temp ) <> 0 then
ListItem.Caption := Copy( temp, 0, LastDelimiter( ".", temp )-1 )
else
ListItem.Caption := temp;
temp := ExtractFileExt( sr.Name );
ListItem.SubItems.Add( "файл" );
ListItem.SubItems.Add( DateToStr( FileDateToDateTime(
FileAge( APath + "\" + sr.Name ) ) ) );
ListItem.SubItems.Add( TimeToStr( FileDateToDateTime(
FileAge( APath + "\" + sr.Name ) ) ) );
end;
isFound := FindNext( sr ) = 0;
end;
FindClose( sr );
end;
← →
dima_bil (2007-07-26 17:54) [22]Использовать так:
только "*.kl" замени на "*.*". пользуйся так
dir2:="директория для поиска";
Getfiles(Dir2,reg,_type);
← →
dima_bil (2007-07-26 17:56) [23]Эта процедура находит файлы, показывает имена, расширение, дату и время последнего изменения файла!
Страницы: 1 вся ветка
Текущий архив: 2007.08.19;
Скачать: CL | DM;
Память: 0.5 MB
Время: 0.041 c