使用C在Windows上按相对路径打开文件
我有以下文件/文件夹结构:使用C在Windows上按相对路径打开文件,c,windows,file,C,Windows,File,我有以下文件/文件夹结构: root out test1 test1.exe test2 test2.exe test3 test3.exe bin run_test.exe 我想从run_test.exe可执行文件中连续运行out文件夹子文件夹中的所有测试可执行文件(test1、test2等) 在我的run_test.execode中,我可以使用Windows API中的GetModuleFileName()函数获取可执行文件run_test
root
out
test1
test1.exe
test2
test2.exe
test3
test3.exe
bin
run_test.exe
我想从run_test.exe
可执行文件中连续运行out
文件夹子文件夹中的所有测试可执行文件(test1、test2等)
在我的
run_test.exe
code中,我可以使用Windows API中的GetModuleFileName()
函数获取可执行文件run_test.exe
的工作目录。我的问题是如何从run_测试代码执行(或触发)测试可执行文件?我应该导航到每个可执行文件夹,还是可以使用相对目录更改进行导航?您可以从bin目录导航回。一般来说,所有可以在命令中使用的东西都会起作用。尝试在那里使用您可以获取out文件夹的子文件夹并循环它们,使用简单的sprintf解析运行每个测试的命令。这取决于运行每个测试可执行文件时当前工作目录的位置。我要做的是使用GetModuleFileName
获取可执行文件的位置,然后切掉可执行文件的名称和bin
以获取根目录作为绝对路径
通过将根目录与(例如)“out\\test1\\test1.exe”
如果需要将当前目录设置为测试目录,只需将
“out\\test1”
连接到根目录并使用设置当前工作目录即可。然后,您可以仅使用可执行文件的名称运行该可执行文件,例如,test1.exe
您必须提供“查找”该可执行文件的路径。因此,当前可执行文件的相对路径有效,绝对路径有效,或者导航到目录并仅提供可执行文件名称有效。在所有情况下:只需编写一个测试程序,然后自己找出答案。但是怎么做呢?由于GetModuleFileName(0,path,path\u BUFFER\u CAP-1)函数,我在路径变量中有run_test.exe的绝对路径。问题被标记为Windows。