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
.
我正在尝试将一些行输出到程序生成的 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
.