Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#Directory.GetFiles查找并统计以~$开头的文件。如何删除该文件?_C#_Windows - Fatal编程技术网

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

C#Directory.GetFiles查找并统计以~$开头的文件。如何删除该文件?,c#,windows,C#,Windows,似乎我的目录中有一个不需要的文件。该文件是一个MS Word文件,文件名以~$开头,据我所知是一个锁定文件,可能是由MS Word创建的。但是,在MS Word关闭后,该文件仍会保留 我有Windows资源管理器设置来显示隐藏文件,但它现在确实显示了这个不需要的文件,所以我无法删除它。我在使用命令行时也看不到它 C#Directory.GetFiles获取并计数此文件,导致文件计数不正确 我想删除这个文件。但我需要看到它才能删除它。如何删除此不需要的文件?或者,您可以忽略这些文件: var fi

似乎我的目录中有一个不需要的文件。该文件是一个MS Word文件,文件名以~$开头,据我所知是一个锁定文件,可能是由MS Word创建的。但是,在MS Word关闭后,该文件仍会保留

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

C#Directory.GetFiles获取并计数此文件,导致文件计数不正确


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

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

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

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

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

我不能复制这个。我刚刚在自己的系统上验证了将explorer设置为显示隐藏文件确实显示了
~$
文件。Windows可以记住每个文件夹的这些设置,因此请检查是否确实已将资源管理器设置为显示相应文件夹的隐藏文件

如果失败,您也可以尝试使用,这将为您提供一个包含名称和
属性的类,您可以使用该属性过滤或显示隐藏文件:

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);
}

为什么不直接统计那些不是以
~$
开头的文件呢?删除该文件不在此处的主题中,在代码中忽略该文件将是正确的。显示隐藏文件应足以使其显示在资源管理器中。如果确实有问题,只需从命令提示符中删除它们。此外,如果在关闭MS Word后文件仍然存在,则会出现问题。可能设置了系统属性,这与隐藏属性不同。你真的不应该碰这些。如何用“忽略”代替“删除”?“C#Directory.GetFiles获取并统计此文件,从而导致不正确的文件计数。”@TaW这次删除文件不是一个长期的解决方案,因为任何导致文件创建的事件都可能再次发生。有时,即使Word(或其他应用程序)关闭后,文件锁仍然存在。有时候重启会有帮助,有时候像Unlocker这样的工具也会有帮助。