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

本文关键字:字符串 文件 包含某 查找 | 更新日期: 2023-09-27 18:21:10

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

以下是我迄今为止完成的内容

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

  2. C:'Temp' 中将该文件保存为xrefTester_(currentDateTime).xml

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

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

  4. 一旦找到文件,就在其末尾添加.bak,这样我的循环就知道将来要传递它(这是因为C:'Temp' 中将存在多个包含子字符串xref_tester的XML文件

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

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

我不知道你尝试了什么,也不知道你在哪里被卡住了,但我会使用这样的东西:

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
}