2013-08-20 102 views
0

我试图创建一个文件夹并在其中插入文件或在其中创建文件。 这里是一个代码片段:创建子目录并在其中插入文件

QDir dir; 
QString filepath(QCoreApplication::applicationDirPath() + "/" 
       + dir.mkdir("logs")+ "/" + "file.txt"); 

QFile* file = new QFile(filepath); 
QTextStream stream; 
stream.setDevice(file); 

bool check = file->open(QIODevice::WriteOnly | QIODevice::Text | QIODevice::Append); 

if(check) { 
    stream << "....text....\n"; 
    stream.flush(); 
    file->close(); 
} 
delete file; 

没有在编译时的错误,而是,它没有指定一个文件创建一个文件夹。 我该怎么做?

回答

0
QString filepath(QCoreApplication::applicationDirPath() + "/" 
       + dir.mkdir("logs")+ "/" + "file.txt"); 

我怀疑这行dir.mkdir(“logs”)会创建目录并返回true或false。 我不确定你的最终路径是什么。

我会建议如下。

if(!dir.mkdir("logs")){ 
//error 
return ; 
} 

QString filepath(QCoreApplication::applicationDirPath() + "/" 
        + "logs"+ "/" + "file.txt"); 
... 
+0

那么,你建议先创建一个子目录,然后设置一个文件路径? – elgolondrino

+1

是的,首先创建子目录,检查它是否正确创建,然后使用路径。在怀疑的时候,请阅读手册。 – RobbieE

+1

我建议首先创建目录,然后改变你创建路径的方式,目前你将dir.mkdir(“logs”)添加到路径,这不会返回字符串,它返回true/false,这意味着你会得到错误的路径。 – Kunal

相关问题