У меня есть файл журнала для моего приложения, и файл журнала имеет не более 10 файлов журнала , которые могут быть созданы. Фрагмент кода следующим образом,«используется другим процессом»?
Stream logFileStream = null;
string file = Config.LOG_FILE;
m_strLogfile = Config.LOG_FILE + Config.LOG_FILE_EXT;
while (File.Exists(m_strGeneralFilePath + file + Config.LOG_FILE_EXT))
{
logFileStream = File.OpenRead(m_strGeneralFilePath + file + Config.LOG_FILE_EXT);
// if(!logFileStream.Length.Equals(logSize))
if ( logFileStream.Length > Convert.ToInt32(logSize)) // approx. 1MB 1.000.000
{
for (int i = 9; i > 0; i--)
{
if (i == 9)
{
if (File.Exists(Config.LOG_FILE + i + Config.LOG_FILE_EXT))
{
File.Delete(Config.LOG_FILE + i + Config.LOG_FILE_EXT);
}
}
if (File.Exists(m_strGeneralFilePath + Config.LOG_FILE + i + Config.LOG_FILE_EXT))
{
System.IO.File.Move(m_strGeneralFilePath + Config.LOG_FILE + i + Config.LOG_FILE_EXT, m_strGeneralFilePath + Config.LOG_FILE + (i + 1) + Config.LOG_FILE_EXT);
}
}
System.IO.File.Move(m_strGeneralFilePath + Config.LOG_FILE + Config.LOG_FILE_EXT, m_strGeneralFilePath + Config.LOG_FILE + "1" + Config.LOG_FILE_EXT);
File.Create(m_strGeneralFilePath + Config.LOG_FILE + Config.LOG_FILE_EXT);
}
}
if (logFileStream != null)
{
logFileStream.Close();
logFileStream.Dispose();
}
Как только дело доходит до System.IO.File.Move(m_strGeneralFilePath + Config.LOG_FILE + Config.LOG_FILE_EXT, m_strGeneralFilePath + Config.LOG_FILE + "1" + Config.LOG_FILE_EXT);
она попадает исключение, говоря «он используется другим процессом», как я могу избавиться от этого? Пожалуйста, помогите мне в этом. Спасибо заранее.
Я использую .net 4.0 C# winforms.
@ wizzardz- даже сделав это упомянутый такой же .. –
происходит ли это на первой итерации? – wizzardz
@roopinin: - Я отредактировал свой ответ, я предположил, что вы больше не используете поток, я его закрыл после того, как вы рассчитали высоту. – wizzardz