• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed C++ Mega dziwna sytuacja przy usuwaniu folderu

Object Storage Arubacloud
0 głosów
236 wizyt
pytanie zadane 30 marca 2019 w C i C++ przez dawid2002 Mądrala (5,190 p.)
zamknięte 6 kwietnia 2019 przez dawid2002

Witam!

Tworzę sobie program, który wykonuje różne operacje z plikami i folderami. Napisałem funkcje, która miała usuwać puste foldery. Problem polega na tym, że gdy jest taka sytuacja, że tworzę folder o nazwie np: folder1 i w tym folderze tworzę kolejny folder np: folder2 i gdy chcę usunąć folder2, a następnie chcę usunąć folder1 to mimo że funkcja usuwająca ten folder pokazuje, że został on usunięty, to tak naprawdę ten folder nadal jest, mimo że chciałem go usunąć, a nie został usunięty. Dodatkowo, gdy chcę normalnie wejść w ten folder to pokazuje się ten komunikat:

I to jest dziwne, że usunąłem ten folder, ale mimo to nadal on jest i jeszcze jest niedostępny. Używałem różnych funkcji do usuwania folderów (np: RemoveDirectoryA , rmdir , filesystem::remove) i wynik był dokładnie taki sam. Program tworzę w Visual Studio 2017.

CreateDirectoryA("folder1", 0); // tworzymy pierwszy folder
 
CreateDirectoryA("folder1/folder2", 0); // w nim tworzymy kolejny folder
 
RemoveDirectoryA("folder1/folder2"); // nastepnie usuwamy podfolder i wszystko jest okej
 
RemoveDirectoryA("folder1"); // probujemy usunac ten folder ale nadal on jest , funkcja zwrocila wartosc informujaca o usunieciu mimo ze nie zostal folder usuniety
     
getchar();
 
exit(0); // gdy program zostaje zamknięty , folder zostaje dopiero usunięty , ale w trakcie wykonywania programu folder ten nadal jest

Zauważyłem też, że folder ten faktycznie zostaje usunięty, ale dopiero gdy program zostanie zamknięty.

W takim razie prosiłbym, aby ktoś powiedział mi jak z ten problem rozwiązać. Chciałbym, aby program usunął ten folder (folder1) w trakcie wykonywania programu, a nie jak do tej pory, gdy program został zamknięty.

Z góry dziękuje za pomoc!!!

komentarz zamknięcia: Mój program nie zwalniał w niektórych przypadkach uchwytów do plików i folderów
komentarz 30 marca 2019 przez Patrycjerz Mędrzec (192,320 p.)
Jako separatorów w ścieżkach stosuj backslash (\), nie natomiast forward slash (/).

1 odpowiedź

+1 głos
odpowiedź 30 marca 2019 przez j23 Mędrzec (194,920 p.)
wybrane 6 kwietnia 2019 przez dawid2002
 
Najlepsza

Czytaj dokumentacje:

The RemoveDirectory function marks a directory for deletion on close. Therefore, the directory is not removed until the last handle to the directory is closed.

 

komentarz 30 marca 2019 przez dawid2002 Mądrala (5,190 p.)
To zmienia postać rzeczy. W takim razie co mam zrobić aby zamknąć uchwyt katalogu?
komentarz 30 marca 2019 przez j23 Mędrzec (194,920 p.)

Internety mówią, żeby usuwane pliki/katalogi przenosić wpierw do innej tymczasowej lokalizacji nadając inną nazwę (ale na tym samym dysku) i wtedy je usuwać.

 

Spróbuj może użyć SHFileOperation.

komentarz 6 kwietnia 2019 przez dawid2002 Mądrala (5,190 p.)
Wielkie dzięki ten problem doprowadzał mnie do szału. Teraz dzięki tobie pozbyłem się problemu. Generalnie mój program , miał taki błąd że w niektórych przypadkach nie zwalniał uchwytów do plików i folderów , więc stąd wziął się ten dziwny problem.

Podobne pytania

+1 głos
1 odpowiedź 692 wizyt
0 głosów
1 odpowiedź 770 wizyt
pytanie zadane 4 lutego 2019 w Systemy operacyjne, programy przez xKirooo Początkujący (370 p.)
0 głosów
1 odpowiedź 149 wizyt
pytanie zadane 15 grudnia 2018 w C i C++ przez Alan Kruszyński Obywatel (1,410 p.)

92,576 zapytań

141,426 odpowiedzi

319,650 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...