【问题标题】:How do I create a directory inside the directory where my .cpp file is placed?如何在放置 .cpp 文件的目录中创建目录?
【发布时间】:2021-04-21 11:04:05
【问题描述】:

我正在使用此代码在桌面文件夹中创建一个目录。

#include <iostream>
#include <stdio.h>
#include <direct.h>
#include<string>
using namespace std;
int main()
{
string k,s="c:/Users/Dell/Desktop/";
cin>>k;
string p =s+k;
    if (mkdir(p.c_str()) != 0)
    {
       cerr<<"Failed"<<endl;
    }
    return 0;
}

但此代码仅适用于我的电脑,因为它具有整个父目录路径。 我想在放置 main.cpp 的工作目录中创建一个新文件夹,因为我们不知道用户将放置 cpp 文件的位置。 我知道论坛上有很多与此问题类似的解决方案,但我在这里找不到或理解任何可以帮助我的解决方案。谢谢。

【问题讨论】:

  • 可以使用__FILE__宏获取当前源文件的路径。但不能保证它是完整路径,并且使用与源文件相同的目录无论如何都没有意义,特别是如果您希望能够分发程序并将其安装在源文件甚至没有的系统上可用。
  • 您可能想要使用工作目录或读取运行程序的用户的用户目录或USERPROFILE 环境变量的值(假设 Windows 作为目标系统)。跨度>

标签: c++ directory working-directory


【解决方案1】:

您真的是指 .cpp 文件吗?

您可以使用__FILE__ 宏将文件名作为字符串获取,然后使用std::filesystem::path 对其进行操作,但您确定这真的是您想要做的吗?您是否希望最终用户在他们想要运行的位置编译该程序?

您还可以(理论上)使用 main 的 argv 参数获取程序执行的路径,这似乎更可能是您的意思,但它在许多令人惊讶的方面都不可靠......

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-11-25
    • 2013-09-25
    • 1970-01-01
    • 2016-08-04
    • 2010-10-20
    • 1970-01-01
    • 1970-01-01
    • 2011-08-03
    相关资源
    最近更新 更多