File.Create и Ghost файл - PullRequest
       11

File.Create и Ghost файл

0 голосов
/ 12 февраля 2020

У меня есть такой код:

string[] paths = { Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "Test", folder };
string path = System.IO.Path.Combine(paths);

if (!Directory.Exists(path))
    Directory.CreateDirectory(path);

path += "\\";

string p=path+"test.txt";
try
{
    FileStream file = File.Create(p);
    TextWriter tw = new StreamWriter(file);
    tw.WriteLine("Test: " + 1);
    tw.Close();
}
catch(Exception exc)
{
    MessageBox.Show(exc.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}

У меня есть test1:

private void OpenStream(string p)
{
    try
    {
        using (StreamReader s = new StreamReader(p, Encoding.UTF8))
        {
            MessageBox.Show(s.ReadToEnd(), "OK", MessageBoxButtons.OK, MessageBoxIcon.Information);
        }
    }
    catch (Exception exc)
    {
        MessageBox.Show(exc.Message,"Error",MessageBoxButtons.OK,MessageBoxIcon.Error);
    }

}

И test2:

private void OpenF(string p)
{
    try
    {
        Process.Start(p);
    }
    catch(Exception exc)
    {
        MessageBox.Show(exc.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
    }
}

Везде, где работает этот код хорошо, но у одного пользователя есть результат:

Test1: ОК, появляется сообщение с текстом,

Test2: Появляется сообщение с информацией о том, что файл не существует. Я не могу найти файл в этом месте, и даже определенные c части каталога «Тест», папка, не отображаются.

Так что в целом поток может читать текст из файла, который не не существует Как это возможно? Как предотвратить эту ситуацию?

Эта проблема только с местоположением Environment.SpecialFolder.LocalApplicationData.

...