【问题标题】:I don't understand what's wrong with this code我不明白这段代码有什么问题
【发布时间】:2014-04-11 10:41:59
【问题描述】:

你能帮我处理这段代码吗?还有请不要给我负分!!

If Not Directory.Exists("C:\Libraries\Documents\Backup - Advanced_Website_Blocker  Folder") Then
          Directory.CreateDirectory("C:\Libraries\Documents\Backup -  Advanced_Website_Blocker Folder")
    End If
    Dim FileToCopy As String
    Dim NewCopy As String

    FileToCopy = "C:\Windows\System32\drivers\etc\hosts"
    NewCopy = "C:\Libraries\Documents\Backup - Advanced_Website_Blocker Folder\hosts"

    If System.IO.File.Exists(FileToCopy) = True Then

        System.IO.File.Copy(FileToCopy, NewCopy)
        MsgBox("File Copied")

    Else : MsgBox("No Folder Found!")

    End If

【问题讨论】:

  • 你有什么问题?错误,意外结果???
  • 不,您需要告诉我们问题是什么,您遇到了什么异常。然后我们可以帮助您。

标签: vb.net forms copy directory


【解决方案1】:

【讨论】:

  • 在 SO 上不鼓励仅使用链接的答案,因为这些链接将来可能无效。
  • 对不起!!!我会尽量不放链接到其他论坛,但我认为我可以放 SO 的链接。对吗?
【解决方案2】:
 FileToCopy = "C:\Windows\System32\drivers\etc\hosts"

是一个文件夹

 If System.IO.File.Exists(FileToCopy) 

正在检查是否存在文件而不是文件夹

【讨论】:

  • 不!它是一个文件在文件资源管理器中搜索它 C:\Windows\System32\drivers\etc\hosts
  • mscorlib.dll 中出现“System.IO.IOException”类型的未处理异常附加信息:文件“C:\Libraries\Documents\Backup - Advanced_Website_Blocker Folder\hosts”已存在。跨度>
  • OK,看起来像 if 的问题 Not try if else ie: If Directory.Exists("C:\Libraries\Documents\Backup - Advanced_Website_Blocker Folder") Then else Directory.CreateDirectory("C: \Libraries\Documents\Backup - Advanced_Website_Blocker Folder") End If
  • 不起作用看看它在 mscorlib.dll 中发生了“System.IO.IOException”类型的未处理异常附加信息:文件“C:\Libraries\Documents\Backup - Advanced_Website_Blocker Folder\主机已经存在。
  • 需要更多信息,该文件夹是否真的存在? , 简单的方法将 create 行包裹在 try catch 中,但完成工作
【解决方案3】:

您需要检查文件是否存在,如果存在,则覆盖它。您可以使用覆盖文件的 File.Copy 方法的重载:

System.IO.File.Copy(FileToCopy, NewCopy, True)

【讨论】:

    【解决方案4】:

    检查要导入的库,见下面的示例代码:

    ' For File.Exists, Directory.Exists 
    
    Imports System
    Imports System.IO
    Imports System.Collections
    
    Public Class RecursiveFileProcessor
    
        Public Overloads Shared Sub Main(ByVal args() As String)
            Dim path As String
            For Each path In args
                If File.Exists(path) Then
                    ' This path is a file.
                    ProcessFile(path)
                Else
                    If Directory.Exists(path) Then
                        ' This path is a directory.
                        ProcessDirectory(path)
                    Else
                        Console.WriteLine("{0} is not a valid file or directory.", path)
                    End If
                End If
            Next path
        End Sub 'Main
    
    
        ' Process all files in the directory passed in, recurse on any directories 
        ' that are found, and process the files they contain.
        Public Shared Sub ProcessDirectory(ByVal targetDirectory As String)
            Dim fileEntries As String() = Directory.GetFiles(targetDirectory)
            ' Process the list of files found in the directory.
            Dim fileName As String
            For Each fileName In fileEntries
                ProcessFile(fileName)
    
            Next fileName
            Dim subdirectoryEntries As String() = Directory.GetDirectories(targetDirectory)
            ' Recurse into subdirectories of this directory.
            Dim subdirectory As String
            For Each subdirectory In subdirectoryEntries
                ProcessDirectory(subdirectory)
            Next subdirectory
    
        End Sub 'ProcessDirectory
    
        ' Insert logic for processing found files here.
        Public Shared Sub ProcessFile(ByVal path As String)
            Console.WriteLine("Processed file '{0}'.", path)
        End Sub 'ProcessFile
    End Class 'RecursiveFileProcessor
    

    http://msdn.microsoft.com/en-us/library/system.io.directory.exists%28v=vs.110%29.aspx?cs-save-lang=1&cs-lang=vb#code-snippet-1

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-06-10
      • 2023-04-01
      • 2022-08-08
      • 2014-06-12
      • 2012-09-01
      • 2020-03-02
      • 1970-01-01
      • 2016-02-24
      相关资源
      最近更新 更多