C# 创建和重影文件

C# 创建和重影文件,c#,windows,file,process,stream,C#,Windows,File,Process,Stream,我有这样的代码: string[] paths = { Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "Test", folder }; string path = System.IO.Path.Combine(paths); if (!Directory.Exists(path)) Directory.CreateDirectory(path); path += "\\"; s

我有这样的代码:

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);
}
我有测试1:

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);
    }

}
测试2:

private void OpenF(string p)
{
    try
    {
        Process.Start(p);
    }
    catch(Exception exc)
    {
        MessageBox.Show(exc.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
    }
}
此代码在任何地方都可以正常工作,但有一个用户得到了以下结果:

Test1:好的,显示带有文本的消息

Test2:出现一条消息,其中包含文件不存在的信息。我在这个位置找不到文件,甚至目录“Test”文件夹的特定部分也没有出现

总之,stream可以从不存在的文件中读取文本。这怎么可能?如何防止这种情况


此问题仅适用于location Environment.SpecialFolder.LocalApplicationData。

可能是权限问题。如果以管理员身份运行.exe,“Test1”将具有管理员权限,但“Test2”可能不具有管理员权限,因为它正在启动一个新进程。我考虑过权限,但目录/Test/folder/不存在。这太奇怪了。此问题仅适用于location Environment.SpecialFolder.LocalApplicationData。