2016-02-10 71 views
4

我想檢查一個文件夾是否可寫,因此我可以提示錯誤對話框。 我正在試圖:如何檢查一個文件夾是否可寫使用Qt

QFileDevice::Permissions permissions_list = QFile(folderName).permissions(); 

    if (permissions_list && QFileDevice::WriteUser) 
    { 
    } 

但它不起作用。這對於可寫文件夾和限制文件夾都是一樣的。

回答

5

使用QFileInfo

QFileInfo my_dir(folderName); 

if(my_dir.isDir() && my_dir.isWritable()){ 
    // Do something 
} 

但要注意this problem,如果你使用的是Windows

+0

我在Windows和問題仍然仍然沒有得到解決。沒有可用的跨平臺解決方案嗎?我試圖寫的文件太大,無法等待它被緩存在內存中寫入,然後得到錯誤消息。我想先檢查一下。 – gelazari

+0

骯髒的選項是創建一個空文件,你可以使用QTemporaryFile http://doc.qt.io/qt-4.8/qtemporaryfile.html,它具有一旦關閉就自動刪除的優勢 – bibi

+0

它看起來像那個可寫窗戶只是意味着你可以改變它的名字。這就是爲什麼Destop文件夾是隻讀的,但你仍然可以在裏面創建一個文件(http://stackoverflow.com/questions/1089598/incorrect-qfileinfo-permissions-for-user-desktop-on-vista-64) – bibi

相關問題