【问题标题】:I need to find the file path and file name of a file that matches the string lastline [closed]我需要找到与字符串 lastline 匹配的文件的文件路径和文件名 [关闭]
【发布时间】:2023-03-16 04:44:01
【问题描述】:

我的路是

E:\Program Files (x86)\foobar2000\library\

我需要找到一个文件名包含变量 lastline 的文件。

然后我需要将该文件路径 + 文件名保存为字符串。

我试过了……

string[] filePaths = Directory.GetFiles("E:\\Program Files (x86)\\foobar2000\\library\\", " *.*", SearchOption.AllDirectories);

for (int i = 0; i < filePaths.Length; i++) {
    if (filePaths[i].Contains(lastline)) {
        Console.WriteLine(filePaths[i]);
    }
}

它所做的只是返回每个文件,而不是包含字符串 lastline 的文件

【问题讨论】:

  • 那么问题出在哪里?你试过什么?
  • 你的错误是什么?
  • 我没有收到错误,只是没有返回我想要的。我只想要包含字符串 lastname 的文件的文件路径。
  • 如果它显示每个文件路径,那么每个文件路径都包含lastline 的值。大概lastline 的值与您的预期不同。要么,要么你应该只测试每个文件名而不是整个路径。
  • 你确定你初始化了lastline变量吗?所有字符串都包含空字符串。无论如何,如果没有可靠地重现问题的a good, minimal, complete code example,就不可能告诉您代码有什么问题。

标签: c# windows


【解决方案1】:
try
        {
            string lastline = "Controller"; // assuming you know the file your searching for
            foreach (string filePaths in Directory.GetDirectories(@"E:\Program Files (x86)\foobar2000\library\"))
            {
                foreach (string f in Directory.GetFiles(filePaths, "*" + lastline + "*.*"))
                {
                    Console.WriteLine(f); // would print the filepath n the file name

                }
            }
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.Message);
        }

希望这会有所帮助。

【讨论】:

  • 文件名是我从用户输入中获得的文本。所以我还不知道文件名是什么。我只需要找到包含用户输入的变量 lastline 的文件名。例如,如果用户输入猫,那么它会寻找一个包含猫的文件,然后它会显示类似 13123cats.jpeg
  • 这行得通.. 我刚刚检查过.. 无论如何祝你好运(y)...
  • 不起作用,但感谢您的输入
  • 它给出的任何错误或错误?为什么它不起作用?
  • 好吧,对不起,我对通配符说了什么。我现在让它工作了,除了在它打印正确的文件和文件路径之后,它会打印所有文件和文件路径。
猜你喜欢
  • 2019-02-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-15
相关资源
最近更新 更多