我正在尝试将文件从一个目录复制到另一个目录。复制后,我要删除原始文件。预期结果是源文件不再存在,而目标文件确实存在。实际结果是目标文件存在,而源文件为空。在执行期间监视目录,源文件最初消失,然后在退出程序时以零长度重新出现。
以下是示例代码:
Imports System.IO
Module Module1
Sub Main()
Dim sourceFileName As String = "c:\TestDir\source\TestFile.txt"
Dim destFileName As String = "c:\TestDir\destination\TestFile.txt"
System.IO.File.Copy(sourceFileName, destFileName)
System.IO.File.Delete(sourceFileName)
End Sub
End Module
如果要删除System.IO.Copy,则不会出现零长度文件。因此,似乎与复制和删除的组合有关。
我的期望不对吗?我知道可以删除目标(如果存在),然后删除文件,但是我想了解为什么我的示例无法按预期工作。感谢您的任何见识。
答案 0 :(得分:0)
尝试从此处使用FileSystem.DeleteFile
方法:
https://docs.microsoft.com/en-us/dotnet/api/microsoft.visualbasic.fileio.filesystem.deletefile?view=netframework-4.7.2
这应该完全删除文件。
答案 1 :(得分:0)
Read-Only
属性是否已应用于您的测试文件?如果是这样,您可以尝试执行以下操作:
File.Copy(sourceFileName, destFileName)
File.SetAttributes(sourceFileName, FileAttributes.Normal);
File.Delete(sourceFileName)
您是否有理由不仅仅使用File.Move
?