Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 文件.替换错误..如何使用?_Vb.net - Fatal编程技术网

Vb.net 文件.替换错误..如何使用?

Vb.net 文件.替换错误..如何使用?,vb.net,Vb.net,我正在使用以下代码将文件从一个文件夹复制到另一个文件夹 Public Shared Sub CopyFlashScriptFile(ByVal SourceDirectory As String, ByVal DestinationDirectory As String) Try Dim f() As String = Directory.GetFiles(SourceDirectory) For i As Integer = 0

我正在使用以下代码将文件从一个文件夹复制到另一个文件夹

Public Shared Sub CopyFlashScriptFile(ByVal SourceDirectory As String, ByVal DestinationDirectory As String)
        Try
            Dim f() As String = Directory.GetFiles(SourceDirectory)
            For i As Integer = 0 To UBound(f)
                File.Copy(f(i), DestinationDirectory & "\" & System.IO.Path.GetFileName(f(i)))
            Next
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
    End Sub

但是文件已经存在于目标文件夹中,它抛出了一个错误…有人能帮我替换代码吗?我的意思是我想用新文件替换该文件。

在结尾添加
true
以覆盖。()


在末尾添加
true
以覆盖。()


如果
File.Copy
方法没有类似
bool Overwrite
的参数,则使用

if(File.Exists(f(1))) 
  File.Delete();
如果有

File.Copy(f(i), DestinationDirectory & "\" & System.IO.Path.GetFileName(f(i)), true);

如果
File.Copy
方法没有类似
bool Overwrite
的参数,则使用

if(File.Exists(f(1))) 
  File.Delete();
如果有

File.Copy(f(i), DestinationDirectory & "\" & System.IO.Path.GetFileName(f(i)), true);

该方法有一个重载,该重载采用一个布尔值,指示是否应覆盖:

File.Copy(f(i), DestinationDirectory & "\" & System.IO.Path.GetFileName(f(i)), True)

无论如何,您可能还希望使用合并路径而不是合并字符串

File.Copy(f(i), Path.Combine(DestinationDirectory, System.IO.Path.GetFileName(f(i))), True)

这样做的优点是足够聪明,只有在需要时才插入
\
(这样你就不会得到像
foo\\bar
这样的路径),并且可以使用各种重载来连接多个路径。

该方法有一个重载,它使用一个布尔值指示是否应该覆盖:

File.Copy(f(i), DestinationDirectory & "\" & System.IO.Path.GetFileName(f(i)), True)

无论如何,您可能还希望使用合并路径而不是合并字符串

File.Copy(f(i), Path.Combine(DestinationDirectory, System.IO.Path.GetFileName(f(i))), True)
这样做的优点是足够聪明,只有在需要时才插入
\
(这样你就不会得到像
foo\\bar
这样的路径),并且可以使用各种重载来连接多个路径。

使用File.Copy方法的重载(字符串、字符串、布尔值)

其中布尔值表示覆盖

使用File.Copy方法的重载(字符串、字符串、布尔值)


其中布尔值表示覆盖

存在要将覆盖设置为true的重载


MSDN源文件中描述得最好,有一个重载要将Overwrite设置为true


在MSDN源文件中有最好的描述请看这一行。。为什么system.IO.Path.GetFileName显示为引号

File.Copy(f(i), DestinationDirectory & "\" & System.IO.Path.GetFileName 
换成这个

File.Copy(f(i), DestinationDirectory & "\\" & System.IO.Path.GetFileName

或者将反斜杠声明为常量,这将使阅读更容易看这一行。。为什么system.IO.Path.GetFileName显示为引号

File.Copy(f(i), DestinationDirectory & "\" & System.IO.Path.GetFileName 
换成这个

File.Copy(f(i), DestinationDirectory & "\\" & System.IO.Path.GetFileName
或者将反斜杠声明为常量,这样更易于阅读