【问题标题】:mkdir() isnt working with absolute filepathmkdir() 不适用于绝对文件路径
【发布时间】:2017-04-29 00:08:33
【问题描述】:

我正在使用树莓派来存储从火箭发射中收集的数据。我正在尝试创建一个内置日期和时间的目录,以保存多个包含有趣数据的文本和 .csv 文件。我的代码如下:

string date = getDateTime(); //Returns a string like "Launch_2017_04_28_23:31:03"
string dated_directory = "~/Launch_System_Cpp/Source_Code/Launch_Data/" + date;
    cout << dated_directory << endl;
    if (mkdir(dated_directory.c_str(), ACCESSPERMS )) {
            cout << "ERROR creating dated directory" << endl;
    }

可执行文件本身位于~/Launch_Code_Cpp/。 我已经能够使用相对引用来解决这个问题,但是我希望这段代码能够工作,无论它是从哪个目录运行的。我无法让它与绝对引用一起工作;总是进入if语句,程序退出时目录不存在。

你能告诉我当我尝试创建这个目录时我可能做错了什么吗?有没有更好的方法来制作这个目录?

【问题讨论】:

  • ~ 不是目录。在 shell 中它可以工作,因为 shell 将它扩展为 $HOME 的值。在c++ 中,这是一个文字字符。
  • “我无法让它工作” 不是可接受的问题描述。

标签: c++ raspberry-pi mkdir


【解决方案1】:

~ 字符由 shell 转换为主目录。由于您没有使用外壳,因此您需要自己扩展它。

【讨论】:

  • 编写的代码不会在根目录中查找文字~,因为路径不是以/ 开头的。它将在当前工作目录中查找~
  • 很好看。谢谢。
猜你喜欢
  • 2011-07-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-05
  • 1970-01-01
  • 1970-01-01
  • 2010-10-28
  • 2012-03-27
相关资源
最近更新 更多