-2

我有这个代码:

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.txt,所以我想涵盖所有选项并复制类似 host*.* 的内容

我怎样才能代替 test1 和 test2 呢?

4

2 回答 2

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 方法(字符串,字符串)

Path.GetFileName 方法

于 2013-07-25T03:47:36.663 回答
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);
}
于 2013-07-25T03:50:58.993 回答