探究Visual Studio项目的当前目录

探究Visual Studio项目的当前目录,第1张

探究Visual Studio项目的当前目录

本文的缘起是我要用 OpenCV 库中的函数读取本地的图像,但是在文件路径名上碰到了一点挫折。本文探究 Visual Studio 2019 项目的当前目录。牵涉到计算机科学与技术的三个概念:当前目录(current directory),绝对路径(absolute path)和相对路径(relative path)
项目有两种情况:

cmake+Visual Studio纯使用 Visual Studio “文件”-“新建”-“项目”生成的项目 1.cmake+Visual Studio

在这种情况下,项目的当前目录是可执行文件(以.exe后缀结尾的文件)所在的目录。本文中举的例子的可执行文件所在的目录的绝对路径是:

  binocular_stereooutbuildx64-Debug

其中,binocular_stereo是项目名。
可执行文件所在目录的截图如图1所示。

图1. 可执行文件所在目录的截图

需要导入的目标文件 r_1.png 所在的目录是:

binocular_stereo

如图2所示:

图2. 需要导入的目标文件 r_1.png 所在的目录的截图

使用绝对路径读取 r_1.png 的代码如下

imgR = cv::imread("D:/binocular_stereo/r_1.png", 0)

使用相对路径读取 r_1.png 的代码如下:

imgR = cv::imread("../../../r_1.png",0);

注意:Windows 10下获取文件的路径的分隔符是反斜杠 “”,在cv::imread函数中却是用正斜杠 "/"分隔。而且 ../是表示上一层目录。

2.纯Visual Studio 项目

项目的当前目录是源文件(以.cpp为后缀)所在的目录。
源文件所在的目录的截图如 图3 所示。

图3. 源文件所在的目录的截图

使用相对路径读取 ansi.txt 的代码如下:

string filename = "ansi.txt";
    ifstream fin(filename.c_str());
    if (!fin.is_open()) {
        cout << "open failed!n";
    }

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5713715.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-18
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存