复制文件包含文件名vb.net中的特定字符串

时间:2018-01-30 11:50:50

标签: .net vb.net

我正在尝试从共享位置复制文件名中包含“GES”的文件,下面是我编写的代码,但由于某种原因,它会从正在复制的位置创建整个文件夹路径。如何仅复制文件而不是整个文件夹路径。

For Each foundFile As String In My.Computer.FileSystem.GetFiles(
FileSource,
    Microsoft.VisualBasic.FileIO.SearchOption.SearchTopLevelOnly, "*GES*.ini")

    My.Computer.FileSystem.CopyFile(foundFile, destination & foundFile)
Next

2 个答案:

答案 0 :(得分:0)

 Dim folder As New DirectoryInfo("c:\")
 Dim files As FileInfo() = folder.GetFiles()
 Dim file As FileInfo
 For Each file in files
        If file.Name.StartsWith("GES") And file.Name.EndsWith(".ini") Then
             'do whatever with the file here
        End If
 Next file

答案 1 :(得分:0)

您可以改用它(假设文件夹是旧文件夹,newDirectory是新文件夹)。

您可以使用目录过滤器获取文件。

使用Path.GetFileName仅获取文件名部分

使用Path.Combine获取新的完整路径

 For Each file in System.IO.Directory.GetFiles(folder, "*GES*.ini")

    Dim shortPath as String = System.IO.Path.GetFileName(file)
    Dim newPath as String = System.IO.Path.Combine(newDirectory, shortPath)

    ' Copy, 3rd Parameter is Overwrite
    System.IO.File.Copy(file, newPath, True)
 Next