Próbuję znaleźć rozwiązanie, które sprawdzi, czy plik jest używany przez inny proces. Nie chcę czytać zawartości pliku, jak w przypadku dokumentu o pojemności 7 GB, może to chwilę potrwać. Obecnie korzystam z funkcji wspomnianej poniżej, co nie jest idealne, ponieważ do pobrania wartości skrypt zajmuje około 5-10 minut.Jak sprawdzić, czy plik jest używany przez inny proces - Powershell
function checkFileStatus($filePath)
{
write-host (getDateTime) "[ACTION][FILECHECK] Checking if" $filePath "is locked"
if(Get-Content $filePath | select -First 1)
{
write-host (getDateTime) "[ACTION][FILEAVAILABLE]" $filePath
return $true
}
else
{
write-host (getDateTime) "[ACTION][FILELOCKED] $filePath is locked"
return $false
}
}
Każda pomoc będzie bardzo mile widziane
Dziękuję bardzo za Twój kod. To jest bardzo użyteczne. Używam go do sprawdzenia, czy plik w udostępnionej lokalizacji sieciowej jest dostępny do użytku. Co kilka dni przesyłają nowy duży plik do tej lokalizacji (co zajmuje kilka godzin) i chcę się upewnić, że przesyłanie zostało zakończone, aby bezpiecznie skopiować i pobrać ten plik na mój komputer lokalny. Czy widzisz jakąś wadę w mojej koncepcji? – FrozenLand
Czy jest jakiś powód, że to nie wywołuje '$ fileStream.Dispose()' przed wyjściem? – user2426679
@ user2426679 Czytałem, że garbage collector zajmie się tym, chyba że tworzysz zbyt wiele obiektów w określonym czasie. –