Witam. Napisałem program, która ma za zadanie fizycznie usunąć zaznaczone pliki z poziomu kontrolki ListView. Kiedy po usunięciu pliku z samej kontrolki ListView program przechodzi do usunięcia pliku fizycznie wywala taki błąd
Dodam, iż plik, który mam zamiar usunąć nie jest otwarty ani żaden program nie powinien z niego korzystać(pliki, na których pracuje to “jpg”).
Do tej pory usunął tylko jeden plik, co uznałem za przypadek losowy.
Czyli @Frankfurterium ma racje - otwierasz plik, potem go nie zamykasz. “Sam się zamknie”, gdy GC wkroczy do akcji, ale to się dzieje w nieokreślonym czasie. Do tego typu rzeczy zawsze dobrze jest używać using.
A w jaki sposób mam go zamknąć. Bo o ile jest opcja zamknięcia strumienia tekstowego o tyle nie widzę nigdzie opcji typu Image.Close();
Po uruchomieniu programu mogę usunąć nawet kilka zdjęć, następnie 1 czy 2 nie i potem znów mogę usuwać. Usuwanie odbywa się bardzo losowo starałem się cokolwiek wywnioskować, lecz nic nie przychodzi mi do głowy.
Z używaniem GC.Collect trzeba uważać(na StackOverflow wszystko jest ładnie opisane). Lepiej ręcznie otworzyć strumień do pliku i trzymać go razem z obrazkiem i wywoływać na nim Close/Dispose, jeśli obrazek tego dobrze nie zrobi.