【发布时间】:2020-12-17 15:16:17
【问题描述】:
我需要一种方法来为可移植应用程序找到一个文件夹,如果它存在(否则可以创建),并且用户和应用程序都可以访问该文件夹,以便其中的文件可以由用户编辑和添加,由应用程序读取/编辑(因此,嵌入式资源不能解决问题)。
我的问题是我不知道默认文件夹/目录应该在哪里。它应该与应用程序.exe 在同一个文件夹中吗?我应该使用SpecialFolder 吗?还是完全不同的东西?
这实际上更多是关于 C# 和 .NET 中可移植应用程序的标准实践的问题,而不是关于如何直接实现这一点的问题(尽管提到的任何特定类/代码的链接仍然很有帮助)。
到目前为止我的想法:
-
我更喜欢将它放在与
.exe,那么如果应用程序文件夹移动了重要的 文件仍然可以很容易地手动定位。但是,如果用户要移动Program Files的应用程序,或其他东西(这似乎不是 太不合理了?),我担心文件可能最终需要 管理员权限编辑/打开,这将破坏应用程序。 -
使用用户目录或类似目录也可以,但我不知道 对于可移植应用程序来说,这是否是可接受的标准做法 写入用户文件夹(对我个人来说似乎有点不对劲)。但我不 知道有没有办法让这道菜更美味?
任何建议将不胜感激。
【问题讨论】:
-
@NikolayB。不,恐怕不是。如前所述,我对标准做法更感兴趣,因为我已经很清楚如何找到有问题的目录,但不确定使用哪一个。
-
@NikolayB。这与这个问题无关。
-
使用适当的
Environment.SpecialFolder。不要使用 Program 文件夹或您的 .exe 文件夹。 -
@DourHighArch 你认为这对于可移植的应用程序是可以接受的吗?我知道其中很多位置是“隐藏的”(我认为 Microsoft Office 会在其中存储模板文件),我只打算存储非常小的文本文件,但我担心会弄乱东西。