如何使用任何扩展名复制文件名?

时间:2013-07-25 03:45:25

标签: c#

我有这段代码:

private void GetHostsFile()
        {
            string Windows_95_98_Me = @"c:\windows\hosts";
            string Windows_NT_2000_XP_Pro = @"c:\winnt\system32\drivers\etc\hosts";
            string Windows_XP_Home = @"c:\windows\system32\drivers\etc\hosts";
            string Windows8 = @"C:\windows\system32\drivers\etc\hosts";

            string fileName = "hosts";

            if (Directory.Exists(Windows_95_98_Me))
            {
                File.Copy(test1,test2, true);
            }
        }

我想将文件“hosts”复制到新位置。 但有时文件可能只是hosts或hosts.txt所以我想覆盖所有选项,只需复制像host *。*

我怎么能代替test1和test2呢?

2 个答案:

答案 0 :(得分:2)

我会将Directory.GetFiles与搜索模式一起使用,例如“hosts *。*”,然后将找到的所有文件复制到另一个目录。

这样的东西
string sourceDirectory = @"D:\";
string destinationDirectory = @"D:\Test";
List<string> fileNames = new List<string>(Directory.GetFiles(sourceDirectory, "hosts*.*"));

for (int iFile = 0; iFile < fileNames.Count; iFile++)
{
    string fileName = fileNames[iFile];
    File.Copy(fileName, Path.Combine(destinationDirectory,Path.GetFileName(fileName)));
}

另见

Path.Combine Method (String, String)

Path.GetFileName Method

答案 1 :(得分:1)

您可以使用以下内容:

string[] files = System.IO.Directory.GetFiles(Windows_95_98_Me, "host*.*");

foreach (string s in files) {
    System.IO.File.Copy(s, System.IO.Path.Combine(targetPath, System.IO.Path.GetFileName(s)), true);
}