如何防止出现'进程无法访问文件'Bla.txt'因为它正在被另一个进程使用.错误
本文关键字:进程 另一个 错误 因为 文件 何防止 Bla 访问 txt | 更新日期: 2023-09-27 18:03:03
我已经得到了这段代码,用于将字节数组写入文本文件以进行调试:
string path = @"'LOG'WrittenData.txt";
. . .
if( bWriter != null )
{
if( bWriter.BaseStream.CanWrite )
{
bWriter.Write( readbuffer, 0, numberOfBytesRead );
//TODO: Remove after testing
WriteByteArrayToFile(path, readbuffer);
}
}
…
public static bool WriteByteArrayToFile(string fileName, byte[] readBuffer)
{
try
{
FileStream _FileStream = new FileStream(fileName, FileMode.Append, FileAccess.Write);
_FileStream.Write(readBuffer, 0, readBuffer.Length);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
return false;
}
…不幸的是,它失败了,标题中有err MSG。
更新好的,我试过了在finally中加一个close的建议。然而,它无法编译!下面显示的可以,被注释掉的不可以!什么! ? !
try
{
// Open file for reading. // changed from FileMode.Create to FileMode.Append
System.IO.FileStream _FileStream = new FileStream(fileName, FileMode.Append, FileAccess.Write);
_FileStream.Write(readBuffer, 0, readBuffer.Length);
_FileStream.Close();
}
finally
{
;//_FileStream.Close(); <-- won't compile - "The type or namespace name '_FileStream' could not be found (are you missing a using directive or an assembly reference?)"
}
可能是您自己的程序使文件保持打开状态。确保每次打开文件时都关闭它?
如果你不确定这请张贴更多的代码,从你张贴它看起来像你打开相同的文件两次而不关闭它。
你有bWriter
,然后你在WriteByteArrayToFile
中再次打开它,没有关闭。
显然有什么东西以一种不允许写入文件的模式打开该文件。把那东西关上。
如果你不确定它打开了什么进程,你可以在进程资源管理器
中找到它http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx