在Windows 7下创建新文件和目录时,我的代码是否会导致崩溃?

New*_*der 3 c# windows-xp windows-7 winforms

我之前遇到过一些问题导致我的程序在所有Windows操作系统中崩溃,因为我没有为我的文件创建新的文件/目录.然后我确信在初始化ect之前我已经创建了文件/文件夹.现在我的程序在Windows XP中运行,但它在Windows 7中不起作用.通过说它可行,我的意思是它创建了我的程序所需的文件/文件夹.不工作我的意思是文件/文件夹不是在Windows 7中创建的.

这段代码可能是Windows 7下崩溃的原因吗?如果是这样,我该如何解决?

    private static string dir = Environment.GetFolderPath
        (Environment.SpecialFolder.ProgramFiles) + @"\folder\";
    private static string file = dir + @"\Settings.txt";
    private string text;

    public void CheckFileStatus()
    {
        if (!Directory.Exists(dir))
        {
            DirectoryInfo directory = Directory.CreateDirectory(dir);
        }
        if (!File.Exists(file))
        {
            using (FileStream fileStream = File.Create(file))
            {
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

Jas*_*own 6

Windows 7中的程序文​​件目录只能使用提升的权限写入.您是否以管理员身份运行代码?写入程序文件文件夹也是不好的做法.您应该使用%appdata%文件夹.

看看这里看各种特殊文件夹.你可能想要使用System.Environment.SpecialFolder.ApplicationData或者System.Environment.SpecialFolder.CommonApplicationData.这将允许您在不需要提升权限的情况下编写数据.