C# 如何清除另一进程正在使用的文本文件
某个文本文件不断被另一个进程占用以更新其内容,我需要我的应用程序偶尔清除其内容。我认为FileStream的fileshare.ReadWrite属性可能有用,但我不是100%确定C# 如何清除另一进程正在使用的文本文件,c#,.net,string,process,filestream,C#,.net,String,Process,Filestream,某个文本文件不断被另一个进程占用以更新其内容,我需要我的应用程序偶尔清除其内容。我认为FileStream的fileshare.ReadWrite属性可能有用,但我不是100%确定 如何清除另一进程拥有的文本文件 为什么不直接用空字符串覆盖txt文件 System.IO.File.WriteAllText("filepath to the txt doc", emptystring make sure to initialize); 这将取决于其他进程在打开文件时使用的标志。如果它以独占方式锁
如何清除另一进程拥有的文本文件 为什么不直接用空字符串覆盖txt文件
System.IO.File.WriteAllText("filepath to the txt doc", emptystring make sure to initialize);
这将取决于其他进程在打开文件时使用的标志。如果它以独占方式锁定了该文件,则您可以忘记从进程中修改该文件,而无需终止所属进程以释放句柄。当然,另一种可能性是修改另一个进程,使其在打开句柄时不会以独占方式锁定文件。@DarinDimitrov可能无论如何都不会工作。假设另一个进程分配了文件大小N,并且正在写入文件的末尾,他不能截断它,对吗?@ChrisShain,正如我所说,这将取决于另一个进程在打开该文件句柄时使用的标志。@DarinDimitrov就是这样,如何验证该标志?如果您有另一个进程的源代码,只需查看它,或者您可以使用工具,例如,然后在该进程上查找对CreateFile或CreateFileEx Win32 API的调用。然后,它将为您提供传递到此函数的参数以及使用的不同标志。我怀疑问题在于OP无法获得文件的写入权限,因此无法删除或覆盖