我真的很困惑这个。
我是一个写作单元测试一个项目。我需要打开并使用文件进行测试。我正在开发两个环境(工作和家庭),并使用Dropbox保持我的代码能够在任何一个地方使用最新版本。
我创建了测试文件并将其放在Unit Test项目的文件夹中。我显然可以使用文件规范
C:\等等\等等\等等\ file.txt的
但这只适用于一台机器。
所以我的问题是...... 是否有一个值/参数/常量,我可以在我的测试代码中使用,无论我在哪个位置,都会拥有项目的根目录。我希望能够像这样引用文件:
{projectRoot} \ folder \ file.txt
答案 0 :(得分:1)
您可以获取当前可执行文件所在文件夹的路径,如下所示:
Dim exeFolderPath As String = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location)
或者:
Dim exeFolderPath As String = Path.GetDirectoryName(Environment.GetCommandLineArgs()(0))
或者,如果您在DLL中,并且需要获取包含该DLL的文件夹的路径,而不是使用它的可执行文件,则可以执行以下操作:
Dim assemblyFolderPath As String = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)
或者,您可以使用当前文件夹,如下所示:
Dim currentFolderPath As String = Directory.GetCurrentDirectory()
然后你可以深入到一个子文件夹,如下所示:
Dim subFolderPath = Path.Combine(exeFolderPath, subFolderName)
为了使项目中包含的文本文件存在于输出二进制文件夹中,只需在 Solution Explorer 中选择文件,转到属性窗口,将复制到输出目录设置更改为始终复制或复制如果更新。然后,在构建项目时,文件将自动复制到相应的bin文件夹中。