c # не может записать в файл после его создания - PullRequest
0 голосов
/ 15 октября 2018

Моя проблема действительно проста.Я создаю файл, и я не могу писать в него.НО, если я закрою программу, а затем снова открою ее при создании файла, она не выдаст никаких исключений.Я думаю, что при запуске метода File.Create программа блокирует его.path это просто расположение текстового файла.Когда я пытаюсь удалить файл вручную, он говорит, что моя программа использует его.

if (!File.Exists(path)) File.Create(path);

try
{
    File.WriteAllLines(path, new string[] {"hi"});
}
catch(IOException)
{
    Console.WriteLine(ex.ToString());
}

1 Ответ

0 голосов
/ 15 октября 2018

Вы не хотите

File.Create(path);

, поскольку он создает FileStream, который устанавливает исключительную блокировку файла.Все, что вам нужно, это File.WriteAllLines:

try
{
    File.WriteAllLines(path, new string[] {"hi"});
}
catch (IOException ex)
{
    Console.WriteLine(ex.ToString());
}

Если вы хотите быть уверены, что все подкаталоги в path созданы, вам следует создать каталог, а не файл:

try
{
    Directory.CreateDirectory(Path.GetDirectoryName(path));

    File.WriteAllLines(path, new string[] {"hi"});
}
catch (IOException ex)
{
    Console.WriteLine(ex.ToString());
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...