使用C在Windows上按相对路径打开文件

时间:2017-04-10 10:03:20

标签: c windows file

我有这个文件/文件夹结构:

out

我想从run_test.exe可执行文件中连续运行run_test.exe文件夹子文件夹中的所有测试可执行文件(test1,test2等)。

在我的run_test.exe代码中,我可以使用Windows API中的GetModuleFileName()函数获取可执行文件import sys import numpy as np import scipy.sparse import pickle import xgboost as xgb # /home/mjoys/user_profile dtrain = xgb.DMatrix('/home/mjoys/user_profile/data/goods_items/textdata.txt') print dtrain 的工作目录。我的问题是如何从run_test代码执行(或触发)测试可执行文件?我应该导航到每个可执行文件夹还是可以使用相对目录更改来执行此操作?

2 个答案:

答案 0 :(得分:1)

您可以从bin目录导航回来。通常,可以在命令中使用的所有东西都可以使用。尝试使用dirent.h.在那里,您可以获取out文件夹的子文件夹并循环它们,使用简单的sprintf解析每个测试运行的命令。

答案 1 :(得分:0)

它取决于运行每个测试可执行文件时当前工作目录的位置。我要做的是使用GetModuleFileName获取可执行文件的位置,然后删除exe的名称和bin以获取根目录作为绝对路径。

然后可以通过将根直接连接到(例如)"out\\test1\\test1.exe"

来创建每个可执行文件名。

如果需要将当前目录设置为test目录,只需将"out\\test1"连接到根目录,然后使用SetCurrentDirectory设置当前工作的directoy。然后,您可以使用其名称运行可执行文件,例如test1.exe