【发布时间】:2013-11-14 15:22:12
【问题描述】:
我正在编写一个 .Net WinForms,并不断在 DEBUG 和 RELEASE 配置之间切换,并且有一些文件需要任一配置才能访问。
我想做的是将文件放在 BIN 文件夹中的一个公共目录中,因此它看起来像这样:
MyProject/Bin/CommonFiles
MyProject/Bin/Debug
MyProject/Bin/Release
我正在考虑使用以下方式访问文件:
System.IO.Directory.GetParent(System.IO.Directory.GetCurrentDirectory).FullName
我的问题是这是否危险,因为根据我的阅读,System.IO.Directory.GetCurrentDirectory 可能会由于用户在打开的文件对话框中选择新的当前目录而发生变化。
我是否应该使用类似以下内容的东西:
System.IO.Directory.GetParent(Environment.CurrentDirectory).FullName
OR 有没有更好的方法可以访问 /Bin 文件夹,这样我就可以从那里移动,或者以一种普遍接受的方式/位置来存储程序通常需要到达的文件和方法更容易引用(可能适用于任何类型的应用程序,而不仅仅是 WinForms)?
【问题讨论】:
-
bin目录是VS构建系统的一个实现细节。由于您不太可能将带有源代码的项目交付给客户,并且您将无法将文件保存到 c:\program files\bin,因此这不是一个好的做法。 %appdata% 用于可写文件,您的 EXE 目录或 %programdata% 用于只读文件。
-
谢谢@HansPassant...正如我在下面告诉克里斯蒂安的那样,我有点犹豫是否要不断地将它们复制到每个用户计算机上的 appdata 文件夹,因为许多用户只需要使用这个程序一次,它就是此时在我组织的共享驱动器上...对此有什么想法吗??