программа для удаления пустых папок не могу понять в чем ошибка кто может посмотрите плз буду признателен
| Код | //---------------------------------------------------------------------------
#include <vcl.h> #pragma hdrstop #include <iostream.h>
#include <tchar.h>
#pragma argsused
//--------------------------------------------------------------------------- char* ctooem(char* str) { char* buf = new char[strlen(str) + 1]; CharToOemA(str, buf); return buf; } //--------------------------------------------------------------------------- char* atooem(char* str) { char* buf = new char[strlen(str) + 1]; AnsiToOem(str, buf); return buf; } //--------------------------------------------------------------------------- bool FolderIsEmpty(UnicodeString Dir) { //смотрит пустая ли папка bool folderIsEmpty = true; // ShowMessage(Dir); if(SetCurrentDir(Dir)) { TSearchRec sr; if (FindFirst("*", faAnyFile, sr) == 0) { do { if(sr.Name != "." && sr.Name != "..") { folderIsEmpty = false; } } while (FindNext(sr) == 0); } FindClose(sr); return folderIsEmpty; } return false; } //--------------------------------------------------------------------------- int FolderSee(UnicodeString Dir) { //ходит по папкам
if(SetCurrentDir(Dir)) { TSearchRec sr; if (FindFirst("*", faAnyFile, sr) == 0) { do { if(sr.Attr & faDirectory && sr.Name != "." && sr.Name != "..") { FolderSee(Dir+"\\"+sr.Name); // ShowMessage(sr.Name+"|"+BoolToStr(FolderIsEmpty(Dir+"\\"+sr.Name))); if(FolderIsEmpty(Dir+"\\"+sr.Name)) RemoveDir(Dir+"\\"+sr.Name);
} } while (FindNext(sr) == 0); } FindClose(sr); } else { wcout<<L"Невозможно открыть папку "; printf((Dir+"\n").t_str()); return 1; } return 0; } //--------------------------------------------------------------------------- int main(int argc, char *argv[]) { setlocale(LC_ALL, "Russian"); if(argc != 2) { wcout<<L"Нужно запускать с 1 параметром:\n"; wcout<<L"папка для которой нужно удалить пустые каталоги\n"; return 1; } else { wcout<<L"Удаляем пустые каталоги в "<<argv[1]<<"...\n"; FolderSee(UnicodeString(argv[1]));
//cout<<ctooem(argv[1])<<endl; cin.get(); return 0; } } //---------------------------------------------------------------------------
|
|