Ano*_*eam 3 powershell file-locking
我有一个Powershell代码,它充当给定文件夹路径上的文件侦听器。侦听器启动对另一个程序的命令行调用,该程序打开并播放文件。
问题在于,如果将任何文件放入此文件夹,PowerShell代码都会立即启动命令行调用。如果文件很大(例如100 + mb),这将是一个问题,因为当有人将文件复制到文件夹中时,当命令功能启动并尝试打开文件时,文件可能只完成了5%的“写入”操作(并且失败)。
Powershell中是否有办法检查文件是否仍在写入?这样,我可以建立一个循环,每隔x秒检查一次,并且仅在写入完成后才运行?
如果文件也被写入,它会保持“锁定”吗?可以在Powershell中检查吗?
感谢大家!
在System.IO.FileInfo或类似的地方可能有锁检查可用,但是我使用了简单的长度检查。它进入被调用的脚本而不是文件监视程序脚本。
$LastLength = 1
$NewLength = (Get-Item $FileName).length
while ($NewLength -ne $LastLength) {
$LastLength = $NewLength
Start-Sleep -Seconds 60
$NewLength = (Get-Item $FileName).length
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2826 次 |
最近记录: |