我如何在 C# 中访问 C:\Program Files\

如何解决我如何在 C# 中访问 C:\Program Files\

我想以比桌面更通用的方式保存我的文件。 所以我想在程序文件夹中创建我自己的子文件夹,我可以用它来保存我的东西。 但是如果我尝试使用 File.AppendAllText(@"C:\Program Files\MySubfolder\MyFile.txt,someString);

创建文件,我会收到“System.UnauthorizedAccessException”

我什至手动禁用了文件夹保护。 我的应用程序尚未编译,所以我不能以管理员身份运行它,是吗? 每个程序如何使用这个文件夹,但我不能? 每次我做一个小改动并想测试它时,我都需要编译我的应用程序吗?

我真的很感激帮助,因为我现在坚持了几个小时

解决方法

尝试在程序文件中编写是一种非常糟糕的做法。此文件夹以及其他敏感文件夹均受操作系统保护,以防止恶意代码隐藏在您的程序之间或防止不熟练的用户干扰已安装的程序。

如果你想在你的磁盘上写你的私人内容,你可以使用这些文件夹

string folder = Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData);
string myFolder = Path.Combine(folder,"MyReservedPath");
Directory.CreateDirectory(myFolder);  // if exists does nothing
string myFile = Path.Combine(myFolder,"MyPrivateData.txt");
File.WriteAllText(myFile,dataToWriteOnDisk);

CommonApplicationData 解析为 C:\programdata,此位置通常用于为任何使用它的用户存储您的程序所需的信息。

如果你想存储你的程序产生的一些数据,那么最好使用

Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);

还有很多其他地方可用,只需查看 Environment.SpecialFolder 枚举。

此代码将为您提供映射到系统中实际文件夹的所有内容的列表

foreach (Environment.SpecialFolder x in Enum.GetValues(typeof(Environment.SpecialFolder)))
    Console.WriteLine($"{x} = {Environment.GetFolderPath(x)}");

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?