在我的 VB.net 应用程序中,
我想将文件从folder1移动/重命名为folder2。如下所示:
System.IO.File.Move(Folder1 & "1.mp3", Folder2 & "NewName1.mp3")
然后我想将文件夹 1 中的所有剩余文件移动到文件夹3
Sub MoveAllFilesToBin()
Try
Dim FolderName As New IO.DirectoryInfo(Folder1)
Dim diar1 As IO.FileInfo() = FolderName.GetFiles()
For Each CurrFile In diar1
If System.IO.File.Exists(Folder3 & CurrFile.Name) Then
System.IO.File.Delete(Folder3 & CurrFile.Name)
End If
System.IO.File.Move(Folder1 & CurrFile.Name, Folder3 & CurrFile.Name)
Next
Catch ex As Exception
End Try
End Sub
循环这个函数。我收到以下错误:
The process cannot access the file because it is being used by another process.
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.__Error.WinIOError()
at System.IO.File.Move(String sourceFileName, String destFileName)
它与将第一个文件从folder1移动到folder2有关吗?
我无法弄清楚这个错误来自哪里。我在本地对其进行了测试,并且有效。它只发生在服务器上。
关于如何移动第一个文件然后移动其他文件的任何替代方法?
我应该在调用之前关闭并处理所有文件MoveFilesToBin()
吗?如果我不打开文件流,我该怎么做?
任何帮助,将不胜感激。
更新:
我尝试跳过将文件从文件夹1 移动到文件夹 2并直接调用MoveAllFilesToBin()
. 它工作正常并且没有返回错误。
所以问题是在移动第一个文件后移动所有这些文件。