【问题标题】:FileSystemObject CopyFile: Unhanded ExceptionFileSystemObject CopyFile:未处理的异常
【发布时间】:2017-07-23 20:28:21
【问题描述】:

我在使用 FileSystemObject.CopyFile 时遇到问题。从我读过的论坛中,我认为我使用正确,但我仍然收到以下编译器错误:

ArgumentException 未处理:值不在预期范围内

代码如下:

Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Dim fso As New Scripting.FileSystemObject
    Dim testfolderchk
    testfolderchk = Dir("C:\Test\")
    Dim inforeader As System.IO.FileInfo
    Dim filedestinationcheck = Dir("C:\Test2\")

  If testfolderchk <> "" Then 
        If Microsoft.VisualBasic.Left(testfolderchk, 4) = "test" Then
            inforeader = My.Computer.FileSystem.GetFileInfo("C:\Test" & testfolderchk)
            filetime = (inforeader.LastWriteTime)
            If testfolderchk = filedestinationcheck Then GoTo skipfile
            If testfolderchk = filedestinationcheck2 Then GoTo skipfile

        Else : GoTo skipfile
        End If
    End If

fso.CopyFile(testfolderchk, filedestinationcheck, True)

【问题讨论】:

  • System.IO 命名空间有各种文件相关的方法,这些方法比FileSystemObject 更适合 NET 代码。
  • 建议?有人吗?
  • Suggestions? 是的,不要使用 FSO 也不要使用 GoTo。只需稍加研究,您就可以在这里找到数百个文件复制小程序
  • 正如@Plutonix 所建议的那样。查看System.IO 命名空间。这有DirectoryDirectoryInfoFileFileInfo,这应该是您获取信息和复制文件所需的全部内容。不要使用FileSystemObject
  • 我也不确定你在这里做什么("C:\Test" &amp; testfolderchk)。那不是("C:\TestC:\Test\")吗?由于testfolderchk 已被分配“C:\Test”

标签: vb.net filesystemobject file-copying


【解决方案1】:

按照 cmets 中的建议,您应该放弃使用 FileSystemObject 并改用 System.IO 命名空间,特别是 FileInfo

为文件的创建、复制、删除、移动和打开提供属性和实例方法,并帮助创建 FileStream 对象。这个类不能被继承。

使用FileInfo可以使用CopyTo (String, Boolean)的方法:

将现有文件复制到新文件,允许覆盖现有文件。

我已经起草了一些代码来告诉你我的意思:

Dim folderToCheck As String = "C:\Test"
Dim destinationFolder As String = "C:\Test2"

Dim file As IO.FileInfo = New IO.FileInfo(IO.Path.Combine(folderToCheck, "test.txt"))

Dim filetime As Date = file.LastWriteTime

file.CopyTo(IO.Path.Combine(destinationFolder, file.Name), True)

注意Path.Combine的用法:

将两个字符串组合成一个路径。

【讨论】:

  • 谢谢。我做了类似的事情,结果效果很好。我很感激。 @错误
猜你喜欢
  • 2011-11-19
  • 1970-01-01
  • 1970-01-01
  • 2011-01-16
相关资源
最近更新 更多