我正在尝试将一些字符串写入文件,这是代码:
private static void WriteSelfDefinedFile(string msg)
{
ArrayList logTypes = SelfDefinedLogRule(msg);
// New some StreamWriter here
StreamWriter[] sws = new StreamWriter[selfDefinedLogFileName.Length];
for(int i = 0;i<selfDefinedLogFileName.Length;i++)
{
sws[i] = new StreamWriter(selfDefinedLogDir + selfDefinedLogFileName[i], true);
Debug.Log("111");
}
// It is writting here, not important for this question,I think.
foreach(SelfDefinedLogType temp in logTypes)
{
int index = (int)temp;
foreach (SelfDefinedLogType n in Enum.GetValues(typeof(SelfDefinedLogType)))
{
if(temp == n && sws[index]!=null)
{
sws[index].WriteLine(System.DateTime.Now.ToString() + ":\t"+ msg);
break;
}
else if(sws[index] == null)
{
LogError("File " + selfDefinedLogFileName[index] + " open fail");
}
}
}
// Close the StreamWrite[] here
for(int i=0;i<selfDefinedLogFileName.Length;i++)
{
sws[i].Close();
Debug.Log("222");
}
}
当客户端向服务器发送消息或服务器向客户端回复某些消息时,将调用此功能以将一些消息写入某些文件。 并且有时会在路径D:\ SelfDefinedLogs \ SentAndReceiveMsg.txt上引发IOException:Sharing冲突。我的意思是,我每次写作都不会发生。 我在功能结束时关闭了所有打开的streamWriter,但问题仍然存在。我真的很困惑。如果有人能对此问题提供一些解决方案,我将不胜感激。