У меня есть такой код:
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.