Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

CFileFind

6.0K
22 июня 2004 года
Karp
10 / / 22.06.2004
Доброго времени суток!

Написал программку для поиска файлов и папок. Но при задании маски поиска происходит
какая-то ерунда. Пример:
ищу по маске "*A?.*"
находит "xxxAx.xxx"
и "xxxxA.xxx"
Насколько я знаю "?" означает, что на этом месте может стоять любой символ, но он
должен быть обязательно. При задании других поисковых условий( с ? и * ), иногда
находит папки и файлы которые совсем не похожи на введенное условие. Код вроде правильный,
но может я что то не понимаю в работе CFileFind. Кому интересно код ниже:


CString string;
pGeneral->m_ComboPath.GetWindowText( string ); //Получаем место поиска
pGeneral->m_ComboObject.GetWindowText( stringObject );//Получаем маску, что искать

FindObject( string ); //Вызываем метод поиска
}

void CMyPropSheet::FindObject( CString string )
{
CFileFind finder;

string += "\\*";

BOOL bWorking = finder.FindFile( string );

BOOL fl = TRUE;

while (bWorking){
bWorking = finder.FindNextFile();
if ( fl ){
UnderFind( finder.GetRoot() ); //Сканирование папки указанной в string
fl = FALSE; //Чтоб папку сканировал один раз
}
if ( !finder.IsDots()){
if ( finder.IsDirectory() )
FindObject( finder.GetFilePath() );
}
}
finder.Close();

}

void CMyPropSheet::UnderFind( CString rootstring )
{
CFileFind underfinder;

rootstring += "\\";
rootstring += stringObject;
BOOL underbWorking = underfinder.FindFile( rootstring );

while( underbWorking ){
underbWorking = underfinder.FindNextFile();
if ( !underfinder.IsDots() ){
if ( underfinder.IsDirectory() )
m_ResultList.InsertString( 0, "[---> DIR " + underfinder.GetFilePath() + " ]" );
else
m_ResultList.AddString( underfinder.GetFilePath() );
m_ResultList.UpdateWindow(); //m_ResultList - ListBox,
//заполняемый результатами
m_StringFindFile.SetWindowText( underfinder.GetFilePath() );
}
}
underfinder.Close();
}
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог