2013-04-10 192 views
1

我有一个文件夹称为测试,其中有子文件夹:A,B和C在根。我正在尝试将文件复制到这三个文件夹。文件是一个目录而不是文件

不知道为什么我收到错误:

目标文件“C:\测试\ A”是一个目录,而不是一个文件。请帮忙。

Dim OPUSINI As New FileInfo("C:\Program Files (x86)\OPUS_4.5\OPUS32.INI") 
    'Where is will be going 
    'Dim Win7DestLocation As String = "C:\Users" 
    Dim Win7DestLocation As String = "C:\test" 
    Dim WinXPDestLocation As String = "C:\Documents and Settings" 
    'Get a list of all the Subfolders within the Destination location 
    Dim Win7Destdir As New DirectoryInfo(Win7DestLocation) 
    Dim WinXPDestdir As New DirectoryInfo(WinXPDestLocation) 
    'Checks if Destination Exists for Windows 7 
    Dim Win7CheckExistDestLocation As New IO.DirectoryInfo(Win7DestLocation) 
    'Checks if Destination Exists for Windows XP 
    Dim WinXPCheckExistDestLocation As New IO.DirectoryInfo(WinXPDestLocation) 
    If Win7CheckExistDestLocation.Exists Then 
     Try 
      For Each subfolder As DirectoryInfo In Win7Destdir.GetDirectories 


       OPUSINI.CopyTo(subfolder.FullName, True) 
      Next 
     Catch ex As Exception 
      MessageBox.Show("Unable to backup Pump data files." + ex.ToString, "Backup Error:", MessageBoxButtons.OK, MessageBoxIcon.Error) 
     End Try 

回答

1

您正将一个目录名称传递给CopyTo
该方法需要的文件名不是目录名称。
因此收到异常。

如果我理解你的代码好,你需要到该行改变

Dim destFile = Path.Combine(subfolder.FullName, OPUSINI.Name)) 
OPUSINI.CopyTo(destFile, True) 

而且使用的DirectoryInfo对象来这里是不是真的有必要。
简单的Directory类可以用较少的开销做同样的事情

相关问题