首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >从文件路径c++获取目录

从文件路径c++获取目录
EN

Stack Overflow用户
提问于 2011-12-15 18:40:41
回答 10查看 91.5K关注 0票数 27

获取文件所在目录的最简单方法是什么?我使用它来查找工作目录。

代码语言:javascript
复制
string filename = "C:\MyDirectory\MyFile.bat" 

在这个例子中,我应该得到"C:\MyDirectory“。

EN

回答 10

Stack Overflow用户

回答已采纳

发布于 2011-12-15 18:43:36

初始化不正确,因为您需要转义反斜杠:

代码语言:javascript
复制
string filename = "C:\\MyDirectory\\MyFile.bat";

要解压缩目录,请执行以下操作:

代码语言:javascript
复制
string directory;
const size_t last_slash_idx = filename.rfind('\\');
if (std::string::npos != last_slash_idx)
{
    directory = filename.substr(0, last_slash_idx);
}
票数 22
EN

Stack Overflow用户

发布于 2013-02-01 01:12:02

MFC方式;

代码语言:javascript
复制
#include <afx.h>

CString GetContainingFolder(CString &file)
{
    CFileFind fileFind;
    fileFind.FindFile(file);
    fileFind.FindNextFile();
    return fileFind.GetRoot();
}

或者,甚至更简单

代码语言:javascript
复制
CString path(L"C:\\my\\path\\document.txt");
path.Truncate(path.ReverseFind('\\'));
票数 12
EN

Stack Overflow用户

发布于 2019-01-14 21:23:48

C++17提供std::filesystem::path。它可能在中的C++11中提供;链接到-lstdc++fs。注意:该函数不会验证路径是否存在;使用std::filesystem::status来确定文件类型(可能是filetype::notfound)

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8518743

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档