尝试File.Move()时处理打开的文件

时间:2008-11-17 10:52:31

标签: c# vb.net file-io

这是处理Windows服务中文件移动的最佳方法吗?我们有许多匹配和移动的文件,但最终用户可能会在移动时打开文件。

这就是代码目前所说的内容:

Do While IO.File.Exists(OriginalFilePath)

    Try
        IO.File.Move(OriginalFilePath, BestMatchPath)
    Catch ex As IO.IOException
        Log(TraceLevel.Warning, "The file '{0}' was unable to be moved (probably opened by someone)", OriginalFilePath)
        Threading.Thread.Sleep(1000)
    End Try

Loop

有没有更好的方法来管理它?我曾想过将其线程化以允许进程继续,但目前我不确定这是否可行,因为其余的进程可能需要文件路径准确。