在包含某个子字符串的目录中查找文件

时间:2014-09-08 20:04:10

标签: c# xml autocad

我正在尝试遍历特定目录,直到找到包含某个子字符串的文件。有问题的文件是一个XML文件,用于Python和Autocad C#插件之间的参数通信。

这是我到目前为止所完成的内容。

  1. 在Python中创建包含所需参数的XML文件。

  2. 将该文件另存为xrefTester_(currentDateTime).xml

    中的C:\Temp\

    以下是我仍需要完成的内容:

  3. 在C#中使用无限循环来查找创建的XML文件。

  4. 找到文件后,将.bak添加到其末尾,以便我的循环知道以后将其传递(这是因为包含子字符串xref_tester的多个XML文件将存在在C:\Temp\

  5. 我设置了无限循环,我在目录中获取文件没有问题。但是,我无法断言包含xrefTester且不以.bak结尾的文件存在。

1 个答案:

答案 0 :(得分:2)

我不知道你曾尝试过什么或者你被困在哪里,但我会用这样的东西:

var xmlFiles = from file in Directory.EnumerateFiles(@"C:\Temp", "*.xml")
               let fileName = Path.GetFileNameWithoutExtension(file)
               where fileName.StartsWith("xrefTester_(") && !fileName.EndsWith(".bak")
               select file;
foreach(string path in xmlFiles)
{
    string dir = Path.GetDirectoryName(path);
    string newFileName = string.Format("{0}{1}{2}", 
                Path.GetFileNameWithoutExtension(path),
                ".bak",
                Path.GetExtension(path));
    File.Move(path, Path.Combine(dir, newFileName)); // cannot exist due to logic above
}