Usunięcie pliku, który jest otwarty w innym procesie.

0

W Windowsie gdy chcę usunąć plik, który jest otwarty w procesie javy wyskakuje komunikat "Proces nie może uzyskać dostępu do pliku, ponieważ jest on używany przez inny proces.".
Na Linuxach nie ma problemu z usunięciem takiego uruchomionego pliku. Czy jest jakiś sposób, który pozwoli usunąć taki plik na Windowsie tak jak to normalnie można zrobić na Linuxach? Kombinowałem z podwyższaniem uprawnień i innymi rzeczami w właściwościach zabezpieczeń, ale nic to nie dało.

I tak - wiem, że wystarczy zamknąć proces, ale nie o to mi chodzi. Chcę po prostu usunąć plik, który jest uruchomiony.

1

Jest taki program, nazywa się Unlocker.

1

Usunięcie pliku, który jest otwarty w innym procesie.

Chcę po prostu usunąć plik, który jest uruchomiony.

To plik jest otwarty w procesie, czy plik „jest” procesem, w sensie że jest aktualnie uruchomionym exekiem?
W tym drugim przypadku odpowiedź brzmi: nie da się bez ubicia tego procesu.
Tak, pod Linuxem jest inaczej.

<upraszczając>Pod Windowsem plik .exe jest jakby przedłużeniem swapa. To znaczy, że w przypadku gdy zaczyna brakować pamięci i trzeba tymczasowo wyrzucić kod exeka z RAMu, Windows nie zapisuje tego kodu na dysk do swapa, skoro ten kod i tak jest już na dysku (w pliku .exe) i może być w razie potrzeby ponownie załadowany. Wymaga to jednak zapewnienia, że plik nie zostanie w międzyczasie skasowany albo zmieniony. Dlatego jego usuwanie bądź zapis doń są blokowane.</upraszczając>

0
Azarien napisał(a):

Usunięcie pliku, który jest otwarty w innym procesie.

Chcę po prostu usunąć plik, który jest uruchomiony.

To plik jest otwarty w procesie, czy plik „jest” procesem, w sensie że jest aktualnie uruchomionym exekiem?
W tym drugim przypadku odpowiedź brzmi: nie da się bez ubicia tego procesu.
Tak, pod Linuxem jest inaczej.

<upraszczając>Pod Windowsem plik .exe jest jakby przedłużeniem swapa. To znaczy, że w przypadku gdy zaczyna brakować pamięci i trzeba tymczasowo wyrzucić kod exeka z RAMu, Windows nie zapisuje tego kodu na dysk do swapa, skoro ten kod i tak jest już na dysku (w pliku .exe) i może być w razie potrzeby ponownie załadowany. Wymaga to jednak zapewnienia, że plik nie zostanie w międzyczasie skasowany albo zmieniony. Dlatego jego usuwanie bądź zapis doń są blokowane.</upraszczając>

Udało mi się skasować plik z uruchomionego procesu takim magicznym programem podobnym do Unlockera, który polecił wyżej @somekind jednak efekt był taki, że program zaczął się sypać i crashować w przypadku wybrania funckji, która wcześniej (przed skasowaniem) nie była użyta. Także udało mi się skasować, jednak nie działa to tak jak na Linuxie, że można dalej korzystać normalnie z takiego programu.

1 użytkowników online, w tym zalogowanych: 0, gości: 1