2014-10-04 3 views
2

Я пытаюсь создать и записать в текстовый файл в C# приложения, используя следующий кодкак создать .txt файл и записать его в C# asp.net

System.IO.Directory.CreateDirectory(Server.MapPath("~\\count")); 

using (System.IO.FileStream fs = new System.IO.FileStream("~/count/count.txt", System.IO.FileMode.Create)) 
using (System.IO.StreamWriter sw = new System.IO.StreamWriter("~/count/count.txt")) 
{ 
    sw.Write("101"); 
} 

string _count = System.IO.File.ReadAllText("~/count/count.txt"); 
Application["NoOfVisitors"] = _count; 

, но я получаю сообщение об ошибке:

The process cannot access the file 'path' because it is being used by another process.

Какая у меня ошибка?

ответ

6

Вы пытаетесь открыть файл дважды; ваш первый оператор using создает FileStream, который не используется, но блокирует файл, поэтому второй using терпит неудачу.

Просто удалите первую строку using, и все должно нормально работать.

Однако я бы рекомендовал заменить все это на File.WriteAllText, тогда в вашем коде не было бы никакого использования, было бы намного проще.

var dir = Server.MapPath("~\\count"); 
var file = Path.Combine(dir, "count.txt"); 

Directory.CreateDirectory(dir); 
File.WriteAllText(file, "101"); 

var _count = File.ReadAllText(file); 
Application["NoOfVisitors"] = _count; 
+0

Мне нужно перезапустить визуальную студию или систему? –

+0

Перезагрузив компьютер, вы должны обязательно его исправить (если только это не было частью приложения, которое блокирует его), но в противном случае это зависит от того, что именно оно заблокировано. –

+0

Я попробовал оба варианта, но все еще сталкивался с той же проблемой .... –

Смежные вопросы