【问题标题】:Can't get file with Directory.get files c#无法使用 Directory.get 文件获取文件 c#
【发布时间】:2021-05-21 12:31:06
【问题描述】:

我想用Directory.GetFiles 获取我的特定文件,但我不能

var deleteFile = Directory.GetFiles(@"C:\test\").Where(f => f.Contains(lastBackup.DbName + " DiffBackup.bak")).ToList();
                
                    foreach (var file in deleteFile )
                    {
                        File.Delete(file);
                    }

【问题讨论】:

  • 运行代码时会发生什么?你有例外吗? deleteFile 列表是空的吗?您能否指定一个实际存在于您希望使用此代码找到的“C:\test\”目录中的文件名?如果没有其他信息,真的很难为您提供帮助。
  • 你告诉我们你“不能”,但你没有解释为什么不能。代码对我来说看起来不错。你实际上也没有问我们一个问题。出了什么问题?您需要什么帮助?
  • 对不起。我是新来的。当我运行我的代码时,deleteFile 列表为空。我又写了一遍,已经修好了。我不知道怎么做。我刚写的。我没有更改我的表单或应用程序。我不知道现在该怎么办。我应该删除我的问题吗?

标签: c# file directory getfiles


【解决方案1】:

考虑使用这个:

Directory.EnumerateFiles(@"C:\test\", lastBackup.DbName + " DiffBackup.bak").ToList();

这将在目录中查找具有特定扩展名的所有文件,例如:

Directory.EnumerateFiles(@"C:\test\", "*.*").ToList();

这将返回在所述文件夹中找到的所有文件。

【讨论】:

  • ToList 调用 makes the enumaration pointless,因为这是唯一的区别,我怀疑它是否能解决问题。
  • 你是对的,但是从他的例子中我认为List<string> 输出,因为它可能更可行。
【解决方案2】:

也许你的路径无效。

尝试使用 Path.combine() 来获得一个好的路径 -> https://docs.microsoft.com/en-us/dotnet/api/system.io.path.combine?view=net-5.0

如果是文件,则使用 Directory.Exist() 或 File.Exist 测试您的路径是否正确。

【讨论】:

  • 谢谢我正在寻找。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-14
  • 2020-07-05
  • 1970-01-01
  • 2017-09-02
  • 2016-08-26
相关资源
最近更新 更多