Verzeichniss löschen?
-
Hallo...
ich möchte gerne ein Verzeichniss löschen.
Dazu benutze ich RemoveDirectory(). In der MSDN heisst es: "The RemoveDirectory function deletes an existing empty directory."
Mit FindFirstFile() und FindeNextFile() gehe ich also durch die Dateien und lösche alle, und will dann das Verzeichniss löschen. Nur schlägt RemoveDirectory immer fehl. Vielleicht mal etwas Code?hSearch = FindFirstFile(cstrFilesToDelete, &FileData); if (hSearch == INVALID_HANDLE_VALUE) m_fstrFile << "Fehler : Keine Datei mit Namen " << cstrFilesToDelete << " gefunden." << endl; while (!bFinished) { CString cstrTmpFile = cstrDirToDelete + FileData.cFileName; if (!(strcmp(FileData.cFileName, ".") == 0 || strcmp(FileData.cFileName, "..") == 0)) { if(DeleteFile((LPCTSTR)cstrTmpFile)) m_fstrFile << "Ok : Datei " << cstrTmpFile << " wurde gelöscht" << endl ; else m_fstrFile << "Fehler : Datei " << cstrTmpFile << " konnte nicht gelöscht werden." << endl; } if (!FindNextFile(hSearch, &FileData)) { if (GetLastError() == ERROR_NO_MORE_FILES) bFinished = true; else return false; } } if(RemoveDirectory((LPCTSTR)cstrDirToDelete)) m_fstrFile << "Ok : Verzeichniss " << cstrDirToDelete << " gelöscht." << endl; else { m_fstrFile << "Fehler : Verzeichniss " << cstrDirToDelete << " konnte nicht gelöscht werden." << endl; return false; }
Könnte das evtl an den "." und ".." Dateien liegen? Das ist mir gerade so aufgefallen als ich das Coding hier gepostet habe. Das werde ich gleich mal testen aber irgendwie kann ich mir das nicht so ganz vorstellen.
Müsste ich vielleicht irgendwie den Handle der suche löschen?Danke schonmal für etwaige Ideen
gruss oversize
-
CHAOS
Bisserl MFC, bisserl API, bisserl ANSI-C, chaotischer geht's ja kaum noch
Du müsstest schon mal festlegen, welche Version Du gerne hättest!Ganz vergessen, zusätzlich auch noch STL, also Standard-C++
boah[ Dieser Beitrag wurde am 25.03.2003 um 16:01 Uhr von RenéG editiert. ]
-
[code type="C++" tabs="4"]
CFileFind find;
CString strFileDir="c:\\windows\\system";
CString strFilePath=strFileDir+"\*.*";
CString strFileDir
find.FindFile(strFilePath);
while(find.FindNextFile())
{
DeleteFile(find.GetFilePath());
}
DeleteFile(find.GetFilePath());RemoveDirectory(strFileDir);
[code]
-
danke für deine einschätzung
ReneG
manchmal muss man einfach noch was lernen ...danke fürs coding <->