我正在試圖找到一個解決方案來檢查另一個進程是否正在使用某個文件。我不想讀取文件的內容,例如在7GB文件上,這可能需要一段時間。目前我正在使用下面提到的功能,這並不理想,因爲腳本需要大約5-10分鐘來檢索值。如何檢查文件是否被另一個進程使用 - 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
}
}
任何幫助,將不勝感激
非常感謝您的代碼。這非常有用。我正在使用它來測試共享網絡位置上的文件是否可用。每隔幾天他們就會向該位置上傳一個新的大文件(上傳需要幾個小時),並且我想確保上傳完成,以便我可以安全地將該文件複製並下載到本地計算機。你看到我的概念有什麼缺陷嗎? – FrozenLand 2013-10-16 18:00:26
是否有一個原因在退出之前不會調用'$ fileStream.Dispose()'? – user2426679 2016-01-25 14:40:43
@ user2426679我讀過垃圾收集器會照顧它,除非你在特定時間範圍內創建太多對象 – 2017-06-21 07:39:11