从导出的文件夹中读取文件

时间:2017-11-07 00:03:35

标签: c++

我有一个文件夹/folder/where/the/file/is中的文件(让我们称之为" file.txt")。 此文件夹已导出到$FOLDER,例如,如果我这样做:

echo $FOLDER,我得到了:folder/where/the/file/is

现在,我想测试文件是否存在。

所以,我试过

  ifstream ifile(Name_finput);

  if(!ifile.good()){  
  cout << "File doesn't exist !" << endl;
  return;
  }

这适用于Name_finput = "/folder/where/the/file/is/file.txt",但不适用于Name_finput=$FOLDER/file.txt

通过保留表单$FOLDER/file.txt,有没有办法让它工作? 似乎编译器没有将$FOLDER解释为/folder/where/the/file/is

1 个答案:

答案 0 :(得分:0)

$FOLDER不是有效的C ++代码。要访问环境变量,您需要使用std::getenv()。以下是代码的外观:

#include <iostream>
#include <cstdlib>
#include <fstream>

int main() {

    std::ifstream ifile;

    if (const char* e = std::getenv("FOLDER")) {

        ifile.open(std::string(e) + std::string("/file.txt"));

        if (!ifile.is_open()) {

            std::cout << "File doesn't exist !" << std::endl;

        } else {

            // Do-stuff with the file

        }

    }

    return 0;
}