如何使用Qt检查文件夹是否可写

laz*_*aza 4 c++ permissions qt

我试图检查文件夹是否可写,以便我可以提示错误对话框.我在尝试这个:

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

    if ( permissions_list && QFileDevice::WriteUser )
    {
    }
Run Code Online (Sandbox Code Playgroud)

但它不起作用.对于可写文件夹和受限文件夹都是一样的.

bib*_*ibi 6

使用QFileInfo:

QFileInfo my_dir(folderName);

if(my_dir.isDir() && my_dir.isWritable()){
    // Do something
}
Run Code Online (Sandbox Code Playgroud)

但如果你在Windows上,请注意这个问题

  • 一个肮脏的选择是创建一个空文件,您可以使用 QTemporaryFile http://doc.qt.io/qt-4.8/qtemporaryfile.html ,它的优点是关闭后会自动删除 (4认同)