- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在编写一个 .Net WinForms,并不断在 DEBUG 和 RELEASE 配置之间切换,并且有一些文件我需要任一配置才能访问。
我想做的是将文件放在 BIN 文件夹的一个公共(public)目录中,这样它看起来像这样:
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)?
最佳答案
您可以使用 System.Reflection.Assembly.GetExecutingAssembly().Location
获取应用程序的 .exe 位置。
string exePath = System.Reflection.Assembly.GetExecutingAssembly().Location;
string exeDir = System.IO.Path.GetDirectoryName(exePath);
DirectoryInfo binDir = System.IO.Directory.GetParent(exeDir);
关于c# - Environment.CurrentDirectory 与 System.IO.Directory.GetCurrentDirectory,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19981504/
背景: 我为我的应用构建了一个安装程序,我所有的 dll 和内容文件都被正确地复制到 C:\Program Files\MyCompany\MyApp 目录。当我从 Visual Studio 运行我
使用OpenFileDialog 选择文件后,Environment.CurrentDirectory 更改为文件所在的文件夹。这是正常的吗? 根据我的理解,Environment.CurrentDi
为了进行单元测试,我在项目中添加了一个NUnit测试项目 我的主要项目在 C:\Users\myName\Desktop\0120-project\ProjectName\ 单元测试项目在: C:\U
如果我有以下目录结构: 项目1/bin/调试 项目2/xml/file.xml 我正在尝试引用 Project1/bin/debug 目录中的 file.xml 我实际上是在尝试执行以下操作: str
在以下获取正在执行的程序集的工作目录的方法中,是否有关于哪一种被认为是最佳实践的建议?我从我的开发人员那里听说方法 1 在 Windows 7 SP1 64 位上有时会失败,除非以提升的权限运行( 以
我在设置新系统时发现了一个有趣的问题,解决起来很容易,但很难追踪。我们有一个使用 QT 的相当大的应用程序。它已经有 20 多年的历史了,虽然多年来一直在维护和升级新功能,但它仍然严格是 32 位的。
我的问题是,当我的测试套件运行时,Environment.CurrentDirectory 在某处以某种方式且只是偶尔被设置为 C:\Windows\System32。一些测试依赖于当前目录,因此失败
在 .NET 中有什么区别: Environment.CurrentDirectory Directory.GetCurrentDirectory()? 当然,Environment.CurrentD
我正在使用 MSTest 和 Visual Studio 2012 进行单元测试,并且在 Environment.CurrentDirectory 调用方面遇到了它在两台不同机器上运行方式的差异。两台
属性(property)Environment.CurrentDirectory总是返回系统目录的路径而不是我的应用程序目录。在我同事的 PC 中,它返回应用程序目录。 问题是什么?我该如何解决? 以
PM> $path = "." PM> Get-ChildItem $path -filter '.nuget' Directory: C:\Users\david\Documents\Vis
我正在编写一个 .Net WinForms,并不断在 DEBUG 和 RELEASE 配置之间切换,并且有一些文件我需要任一配置才能访问。 我想做的是将文件放在 BIN 文件夹的一个公共(public
我在同一文件夹中有两个 exe 文件,我可以通过 exe1 中的按钮运行 exe2。今天我通过远程(终端服务) session 观察客户,exe2 无法运行“未找到文件”错误,但我们检查时 exe1
我在构建我的 android 项目时遇到了这个错误。 Win32Exception: ApplicationName='cmd', CommandLine='/Cecho "xxx" | openss
我是一名优秀的程序员,十分优秀!