dEEp |
Отправлено: 10.05.2005, 03:36 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 69
|
Каким образом можно определить все имена файлов, имеющихся в данной или определённой директории? Т.е. список всех имён.
|
|
Aptem |
Отправлено: 10.05.2005, 07:11 |
|
Мастер участка
Группа: Участник
Сообщений: 349
|
CODE | AnsiString Directory, File;
TSearchRec sr;
if ( SelectDirectory ( Directory, TSelectDirOpts() << sdAllowCreate << sdPerformCreate << sdPrompt, 1000 ) )
{
if ( FindFirst ( Directory + "\*.*", faAnyFile, sr ) == 0 )
{
do
{
if ( ( sr.Name == "." ) ) continue;
if ( !( sr.Attr & faHidden ) && !( sr.Attr & faSysFile ) && !( sr.Attr & faDirectory ) && !( sr.Attr & faVolumeID ) )
{
File = sr.Name;
//вот тебе имя файла, а дальше уже твои действия
}
} while ( FindNext ( sr ) == 0 );
FindClose ( sr );
}
} |
|
|
Guest |
Отправлено: 10.05.2005, 10:26 |
|
Не зарегистрирован
|
do
{
if ( ( sr.Name == "." ) ) continue;
if ( ( sr.Name == ".." ) ) continue;
// if ( !( sr.Attr & faHidden ) && !( sr.Attr & faSysFile ) && !( sr.Attr & //faDirectory ) && !( sr.Attr & faVolumeID ) )
// {
File = sr.Name;
//вот тебе имя файла, а дальше уже твои действия
// }
} while ( FindNext ( sr ) == 0 );
Это дополнение. Апроверка атрибутов зачем , нужны же все файлы, так зачем лишнее условие. |
|
Sl@Sh |
Отправлено: 10.05.2005, 11:42 |
|
Мастер участка
Группа: Участник
Сообщений: 383
|
CODE |
TSearchRec sr;
AnsiString fPath, fExt; //Путь и расширение
if (FindFirst(fPath + "*.*", faAnyFile, sr) == 0)
{
do
{
if (sr.Attr & faDirectory)
{
if (sr.Name != ".")
if (sr.Name != "..") continue;
} else if (ExtractFileExt(sr.Name) == fExt) //Найден файл с нужным расширением
}
while (FindNext(sr) == 0);
FindClose(sr);
}
Application->ProcessMessages();
|
Немного переработан. Найдёт файлы со всеми возможными атрибутами.
|
|