2016-02-10 61 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

相关问题