我正在试图找到一个解决方案来检查另一个进程是否正在使用某个文件。我不想读取文件的内容,例如在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