powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как удалять в папке все файлы и существующие папки ?
6 сообщений из 6, страница 1 из 1
Как удалять в папке все файлы и существующие папки ?
    #32377902
Aliga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как удалять в папке все файлы и существующие папки ?
...
Рейтинг: 0 / 0
Как удалять в папке все файлы и существующие папки ?
    #32377930
123456789098
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
посмотр функции FindFist и FindNext а так же DeleteFile.(это в BCB уверен что в VC эти функции называются аналогично)
...
Рейтинг: 0 / 0
Как удалять в папке все файлы и существующие папки ?
    #32378082
SnowMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
SHFILEOPSTRUCT fs = {
    NULL,		//HWND         hwnd;
    FO_DELETE,	//UINT         wFunc;
    Путь к папке из которой удаляете, //LPCSTR       pFrom;
    NULL,		//LPCSTR       pTo;
    FOF_NOCONFIRMATION,	//FILEOP_FLAGS fFlags;
     0 ,		//BOOL         fAnyOperationsAborted;
    NULL,		//LPVOID       hNameMappings;
    NULL,		//LPCSTR       lpszProgressTitle;
 };
 SHFileOperation(&fs);
...
Рейтинг: 0 / 0
Как удалять в папке все файлы и существующие папки ?
    #32378152
Фотография CEMb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где-то тут уже писал...

Надо накатать рекурсивную функцию поиска папок через
FindFist и FindNext

В ней, первым делом ищется первый попавшийся файл.
- если он папка(там есть флаг в структуре для FindFist и FindNext, который даёт признак директории), то с путём этой папки вызывается сама рекурсивная функция
- если он файл, то убиваем
- если он "." или ".." - ищем дальше.
- если GetLastError() == ERROR_NOMOREFILES (или что-то в этом роде) -выходим.
...
Рейтинг: 0 / 0
Как удалять в папке все файлы и существующие папки ?
    #32378230
sijfhsif
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
char szFullPath [ _MAX_PATH + 1 ];
sprintf(szFullPath,"%s\\%s", pszFolderName, pszFilePattern);
WIN32_FIND_DATA FindFileData;
HANDLE dwFileHandle = FindFirstFile(szFullPath, &FindFileData);
if(INVALID_HANDLE_VALUE == dwFileHandle)
{
cerr << error;
return GetLastError();
}
cerr << "Found: " <<
pszFolderName
<< FindFileData.cFileName
<< endl << flush;

if(FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{
// nothing to do
(это у меня nothing to do, а а так нужно обойти директорию)
} else
{
PrcFile( pszFolderName, FindFileData);
}
while(FindNextFile( dwFileHandle , &FindFileData) )
{
cerr << "Found: " <<
pszFolderName
<< FindFileData.cFileName
<< endl << flush;

if(FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{
// nothing to do
(это у меня nothing to do, а а так нужно обойти директорию)
} else
{
PrcFile( pszFolderName,FindFileData);
}

}
int e = GetLastError();
switch(e)
{
case ERROR_NO_MORE_FILES:
break;
default:
cerr << error;
return GetLastError();

}
FindClose(dwFileHandle);
return 0;
...
Рейтинг: 0 / 0
Как удалять в папке все файлы и существующие папки ?
    #32379916
Aliga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем спасибо!
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как удалять в папке все файлы и существующие папки ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]