C#Directory.GetFiles查找并计算以〜$开头的文件。我该如何删除该文件?

时间:2018-03-19 17:46:29

标签: c# windows

似乎我在目录中有一个不需要的文件。该文件是一个MS Word文件,文件名以〜$开头,我理解这是一个锁定文件,可能是由MS Word创建的。但是,MS Word关闭后文件仍然存在。

我有Windows资源管理器设置来显示隐藏文件,但它现在显示这个不需要的文件,所以我无法删除它。使用命令行时也看不到它。

C#Directory.GetFiles获取并计算此文件,导致文件计数错误。

我想删除此文件。但我需要看到它删除它。如何摆脱这个不需要的文件?

2 个答案:

答案 0 :(得分:1)

或者,您可以忽略这些文件:

var files = Directory.GetFiles(directory).Where(name => !name.StartsWith("~$"));

答案 1 :(得分:0)

~$文件是Word在您主动打开文件进行编辑时创建的锁定/恢复文件。如果您非常确定 Word未运行它已正确关闭,您可以安全地删除这些文件。如果可能的Word未正确关闭,您可能仍需要这些文件以恢复未保存的工作。

  

我有Windows资源管理器设置来显示隐藏文件,但它现在显示此不需要的文件

我无法重现这一点。我刚刚在我自己的系统上验证了设置资源管理器以显示隐藏文件确实显示了~$文件。 Windows可以记住每个文件夹的这些设置,因此请检查您是否确实让资源管理器设置为显示相应文件夹的隐藏文件。

如果失败,您还可以尝试使用Directory.GetFileSystemInfos(),这将为您提供一个类,其中包含名称和可用于过滤或显示隐藏文件的Attributes属性:

var files = Directory.GetFileSystemInfo("path here")
           .Where(fsi => fsi.Attributes != null && fsi.Attributes.Hidden && fsi.Name.StartsWith("~$"))
           .Select(fsi => fsi.FullName);
foreach(var file in files)
{
   File.Delete(file);
}