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

Вниз

Поиск файлов возвращает артефакты   Найти похожие ветки 

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.052 c
2-1184858312
CatAlone
2007-07-19 19:18
2007.08.19
SHGetSystemInfo и иконки


15-1184923186
Stanislav
2007-07-20 13:19
2007.08.19
Кто-нить пользует CVS ?


1-1181138897
Tonich
2007-06-06 18:08
2007.08.19
Delphi и С++ Builder 5


2-1185540202
delphiuser1
2007-07-27 16:43
2007.08.19
const при передаче в функцию/процедуру.


2-1185039805
kernel
2007-07-21 21:43
2007.08.19
"Постоянный ShowWindow(HWND, SW_HIDE)"





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