栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

探究Visual Studio项目的当前目录

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

探究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";
    }
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/717395.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号