Възникна грешка при запис във файла

Създавам файла. Първият път след създаването на файла веднага ще отворя файл, но той показва грешка:

„Процесът не може да получи достъп до файла „C:\ProjectWork\Websites3\LogsArpita\ErrorLogs\Error_Log_24_4_2014.txt“, защото се използва от друг процес.“

Какво означава? Как мога да отворя файл веднага за по-нататъшна операция за запис. Опитах със следния код.

FileName = String.Concat("Error_Log_", DateTimeStamp + ext);

if (!File.Exists(Server.MapPath("~/LogsArpita/ErrorLogs/" + FileName)))
{
    File.Create(Server.MapPath("~/LogsArpita/ErrorLogs/" + FileName));
}

//Error occured here, below line
StreamWriter tw = new StreamWriter(Server.MapPath("~/LogsArpita/ErrorLogs/" +    FileName), true);

tw.WriteLine("");
tw.Write("\"" + DateTimeStampLog + "\",");
tw.Write("\"Assignments.aspx\",");
tw.Write("\"" + ErrorMessage + "\",");
tw.Write("\"" + TransactVariable + "\"");
tw.Close();

person user1659510    schedule 24.04.2014    source източник


Отговори (1)


Не се нуждаете от File.Create, защото конструкторът StreamWriter ще създаде файла, ако не съществува

Ето какво казва документацията на msdn:

Инициализира ново копие на класа StreamWriter за посочения файл, като използва кодирането по подразбиране и размера на буфера. Ако файлът съществува, той може да бъде презаписан или добавен към него. Ако файлът не съществува, този конструктор създава нов файл.

person Mike Norgate    schedule 24.04.2014
comment
Освен това методът File.Create създава и отваря файловия поток и връща отворения поток. Така че, когато използвате File.Create, трябва да обработите върнатия поток, в противен случай всеки ваш опит да отворите този файл ще бъде неуспешен. Но вместо това можете просто да използвате конструктора StreamWriter и да го оставите да си свърши работата. - person Tolga Evcimen; 24.04.2014