2013-08-20 99 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

相關問題