gpt4 book ai didi

vb.net - VB - 由于 "being used by another process"错误无法复制文件

转载 作者:行者123 更新时间:2023-12-04 02:56:33 31 4
gpt4 key购买 nike

我无法准确指出导致此错误的原因。我试图做的就是将当天创建的文件(pdf)从一个目录复制到另一个目录,经过一定时间后使用自动收报机。这是我的代码:

Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick

Dim file As String
Dim now As String = DateTime.Today.ToShortDateString
Dim dir As String = "C:\PDFs\"
Dim bupdir As String = "C:\PDFs\copied\"
Dim Files() As String = Directory.GetFiles(dir)

For Each file In Files
Dim dt As String = IO.File.GetLastWriteTime(file).ToShortDateString
If dt = now Then
IO.File.Copy(Path.Combine(dir, file), Path.Combine(bupdir, file), True)
End If
Next

End Sub

最佳答案

您的问题在于 Directory.GetFiles() 返回源目录中文件的完整路径名。

然后,当您尝试构建目标文件名时,Path.Combine 会发现您的 file 变量是绝对路径并且不会添加路径 bupdir.
这会返回变量 file 的值,您最终会得到类似这样的结果

IO.File.Copy("C:\PDFs\file.pdf", "C:\PDFs\file.pdf", True)

解决问题

IO.File.Copy(file, Path.Combine(bupdir, Path.GetFileName(file)), True)

FROM MSDN

If one of the specified paths is a zero-length string, this method returns the other path. If path2 contains an absolute path, this method returns path2.

关于vb.net - VB - 由于 "being used by another process"错误无法复制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16596684/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com