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

标签 c# winforms windows-7 windows-xp

我之前遇到过一些问题导致我的程序在所有 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))
            {
            }
        }
    }

最佳答案

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

看看here查看各种特殊文件夹。您可能希望使用 System.Environment.SpecialFolder.ApplicationDataSystem.Environment.SpecialFolder.CommonApplicationData。这将使您无需提升权限即可写入数据。

关于c# - 在 Windows 7 下创建新文件和目录时,我的代码会导致崩溃吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8860629/

相关文章:

c++ - C++ WDK STL 是否支持 wchar_t?我得到未解析的外部符号的 :(

c# - 在自定义 Log4Net appender 中使用 IoC

c# - 动态填充数据网格

javascript - 如何访问功能键以将焦点添加到控件?

c# - 如何访问新资源(图像)以设置为背景

.net - WinForms - DataGridView - 未选择单元格

windows - 开始-> 运行对话框 - "Run as Administrator"复选框?

performance - MPI 应用程序中的 CPU 使用百分比

c# - 设计问题 - 面向对象的食品应用

c# - 如何保证条目的时间范围不重叠?