C++ 无法读取 ofstream 的路径

C++ can't read path of ofstream

我正在尝试将一些行输出到程序生成的 txt 文件中。 如果我使用这条线

exportedList.open("test.txt");

代替以下代码段中报告的那个,它起作用了。 问题是我需要一个绝对路径,而不是相对于我的工作项目的路径。

通过以下操作,我得到了我的文本文件,但它是空的。

int _tmain(int argc, _TCHAR* argv[])
{
    vector<wstring> listOfFileNames;
    wofstream exportedList;
    wstring outputPath
    wstring path = L"Y:\Somepath\*.jpg";

    exportedList.open("Y:\Somepath\Otherpath\test.txt");

    WIN32_FIND_DATA dataFile;
    HANDLE hFind;

    hFind = FindFirstFile (path.c_str(), &dataFile);


    wcout << "File is " << dataFile.cFileName << endl;
    while (FindNextFile(hFind,&dataFile)!=0){
        wcout << "File is " << dataFile.cFileName << endl;
        listOfFileNames.push_back(dataFile.cFileName);
        exportedList << dataFile.cFileName << endl;
    }
    exportedList.close();
    FindClose(hFind);
    return 0;
}

std::ofstream和朋友无法创建目录。他们只能打开现有目录中的文件(或创建新文件)。因此,在运行您的程序之前,您必须确保路径 Y:\Somepath\Otherpath 存在,否则您必须增强您的程序才能创建它。

标准 C++ 库目前没有创建目录的机制。由于您显然正在使用 WinAPI 函数,因此您也可以使用 WinAPI 功能来创建目录(例如 CreateDirectory). Or use another library mechanism, such as Boost's create_directories.