Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.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# 如何清除另一进程正在使用的文本文件_C#_.net_String_Process_Filestream - Fatal编程技术网

C# 如何清除另一进程正在使用的文本文件

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); 这将取决于其他进程在打开文件时使用的标志。如果它以独占方式锁

某个文本文件不断被另一个进程占用以更新其内容,我需要我的应用程序偶尔清除其内容。我认为FileStream的fileshare.ReadWrite属性可能有用,但我不是100%确定


如何清除另一进程拥有的文本文件

为什么不直接用空字符串覆盖txt文件

System.IO.File.WriteAllText("filepath to the txt doc", emptystring make sure to initialize);

这将取决于其他进程在打开文件时使用的标志。如果它以独占方式锁定了该文件,则您可以忘记从进程中修改该文件,而无需终止所属进程以释放句柄。当然,另一种可能性是修改另一个进程,使其在打开句柄时不会以独占方式锁定文件。@DarinDimitrov可能无论如何都不会工作。假设另一个进程分配了文件大小N,并且正在写入文件的末尾,他不能截断它,对吗?@ChrisShain,正如我所说,这将取决于另一个进程在打开该文件句柄时使用的标志。@DarinDimitrov就是这样,如何验证该标志?如果您有另一个进程的源代码,只需查看它,或者您可以使用工具,例如,然后在该进程上查找对CreateFile或CreateFileEx Win32 API的调用。然后,它将为您提供传递到此函数的参数以及使用的不同标志。我怀疑问题在于OP无法获得文件的写入权限,因此无法删除或覆盖