VB.Net - My.Computer.FileSystem.CopyFile()不会让我将文件复制到目录

时间:2015-03-20 15:27:43

标签: vb.net winforms

基本上我正在编写一个程序,允许用户根据一组工作站选择要通过网络复制的文件或目录,然后键入要复制这些文件/目录的位置。< / p>

我接近完成我认为但是我遇到了My.Computer.FileSystem.CopyFile()方法的问题。我事先检查是否要复制用户选择的项目是文件或目录,但是如果用户输入要复制到的文件的目录,我会收到错误,告诉我&#34;给定的文件路径以目录分隔符结束。&#34;,即使它是DESTINATION位置错误输出。如果指定的目录没有文件名,我需要能够将文件复制到目录。

我尝试使用Trim函数并将名称复制到目标路径的末尾,但我很难获得源文件的文件名。

有什么想法吗?

这里是我的fileCopy函数远的代码 -

        If (pushFileSelectCheckBox1.Enabled) Then
        For Each item As String In stations
            copyTo = Path.Combine(copyTo, stations([i].ToString))
            copyToLoc = copyTo.ToString
            copyToLoc = Path.Combine(copyTo, pushLocationBox1.ToString.Remove(0, 36))

            If Directory.Exists(pushFrom1) Then
                If (System.IO.Directory.Exists(copyToLoc)) Then
                    My.Computer.FileSystem.CopyDirectory(pushFrom1, copyToLoc, True)
                    LogOutput("Directory 1 copied.")
                Else
                    Directory.CreateDirectory(copyToLoc)
                    LogOutput("Directory created.")
                    My.Computer.FileSystem.CopyDirectory(pushFrom1, copyToLoc, True)
                    LogOutput("Directory 1 copied.")
                End If
            ElseIf File.Exists(pushFrom1) Then
                If (System.IO.Directory.Exists(copyToLoc)) Then
                    My.Computer.FileSystem.CopyFile(pushFrom1, copyToLoc, True)
                    LogOutput("File 1 copied.")
                Else
                    Directory.CreateDirectory(copyToLoc)
                    LogOutput("Directory created.")
                    My.Computer.FileSystem.CopyFile(pushFrom1, copyToLoc, True)
                    LogOutput("File 1 copied.")
                End If
            Else
                MsgBox("Chosen file, or whatever, is neither a file nor a directory. What did you do?!?!", MsgBoxStyle.Critical, "Umm....")
            End If
            i += 1
        Next
        i = 0
    End If

提前致谢。

1 个答案:

答案 0 :(得分:2)

使用Path.GetFileName从pushFrom变量中获取文件名,并将其附加到copyToLoc的末尾。 CopyFile的第二个参数需要以文件名结尾,而不仅仅是路径。