)使用System.IO;类测试{publicstaticvoidMain(){stringpath=@"c:mytext.txt";if(File.Exists(path)){File.Delete(path);}FileStreamfs=newFileStream(path,FileMode.OpenOrCreate);StreamWriterstr=newStreamWriter(fs);str.BaseStream.Seek(0,SeekOrigin.End);str.Write("mytext.txt...........");str.WriteLine(DateTime.Now.ToLongTimeString()+""+DateTime.Now.ToLongDateString());stringaddtext="添加这一行"+Environment.NewLine;File.AppendAllText(路径,添加文本);//异常发生??????????字符串readtext=File.ReadAllText(path);Console.WriteLine(readtext);海峡冲洗();海峡关闭();控制台.ReadKey();//System.IO.IOException:该进程无法访问文件“c:mytext.txt”,因为它正被另一个进程使用。//在System.IO.__Error.WinIOError(Int32errorCode,StringmaybeFullPath)}}试试这个字符串path=@"c:mytext.txt";if(File.Exists(path)){File.Delete(path);}{//考虑文件操作1FileStreamfs=newFileStream(path,FileMode.OpenOrCreate);StreamWriterstr=newStreamWriter(fs);str.BaseStream.Seek(0,SeekOrigin.End);str.Write("mytext.txt...........................");str.WriteLine(DateTime.Now.ToLongTimeString()+""+DateTime.Now.ToLongDateString());stringaddtext="添加此行"+Environment.NewLine;str.Flush();str.Close();fs.Close();//ClosetheStream然后Individuallyyoucanaccessthefile.}File.AppendAllText(path,addtext);//FileOperation2stringreadtext=File.ReadAllText(path);//文件操作3Console.WriteLine(readtext);在每个文件操作中,文件都将被打开,并且必须在打开之前关闭在操作1中,您必须关闭文件流才能进行进一步的操作。在关闭文件流之前写入文件:using(FileStreamfs=newFileStream(path,FileMode.OpenOrCreate))using(StreamWriterstr=newStreamWriter(fs)){str.BaseStream.Seek(0,SeekOrigin.End);str.Write("mytext.txt................................");str.WriteLine(DateTime.Now.ToLongTimeString()+""+DateTime.Now.ToLongDateString());stringaddtext="添加此行"+Environment.NewLine;海峡冲洗();}File.AppendAllText(path,addtext);//异常发生?????????字符串readtext=File.ReadAllText(path);Console.WriteLine(readtext);上面的代码应该适用于您当前使用的方法。您还应该查看using语句并将流包装在using块中。File.AppendAllText不知道您打开的流,因此将在内部尝试再次打开该文件。因为您的流阻止了对该文件的访问,所以File.AppendAllText将失败,抛出您看到的异常。我建议您像在代码的其他地方一样使用str.Write或str.WriteLine。您的文件已创建但不包含任何内容,因为在str.Flush()和str.Close()之前抛出了异常。以上是C#学习教程:进程无法访问文件,因为它正在被另一个进程使用(文件已创建但不包含任何内容)分享所有内容,如果对大家有用还需要了解更多关于C#学习教程,希望大家多多关注——using(varfs=newFileStream(filePath,FileMode.Append,FileAccess.Write,FileShare.ReadWrite))using(varsw=newStreamWriter(fs)){sw.WriteLine(消息);}本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
