2011-07-19 9 views
4

私のプログラムでは、ユーザーはファイルを保存するディレクトリを選択したり、特定のディレクトリ内のいくつかのファイルを変更することができます。ユーザーが新しいファイルを作成したり、ファイルを変更する権限を持っていない場合は、警告が表示されます。新しいファイルの作成または特定のディレクトリ内の特定のファイルの変更の承認に関する情報を取得する方法は?

しかし、テストファイルを作成する以外は、この機能を実装することはできません。 QFile :: open(...)関数がtrueを返す場合、私は現在のユーザーが書き込みアクセス権を持つことを理解します。

これを行うには良いアイデアはありますか?

答えて

1

使用QFileSystemModelクラス、それは方法

QFile::Permissions QFileSystemModel::permissions (const QModelIndex & index) const 
ファイルを作成したいディレクトリのための

要求権限を持っている...

また、Windows上の権限についてのいくつかのトリックがある - docsに見て - 彼らは明示的にアプリで有効になって、そして

QFile::ReadOwner 
QFile::WriteOwner 
QFile::ExeOwner 

は、現在のユーザー

に対応する必要があります

UPD - 簡単な方法がある - ちょうど

QString dirName=<your dir>; 
QFileInfo f(dirName); 
f.permissions(); 
+0

を使用しご返信いただきありがとうございます。あなたが言及したトリックを試してみましたが、すべてのアクセス権が返されました(そのディレクトリにファイルを作成できないため、間違っているはずです)。 docによって導入された "qt_ntfs_permission_lookup"フラグメントを追加すると、その結果は以前よりも少なくなりました。それは "QFile :: XXXXGroup"シリーズなしでした。私はQFileSystemModelを調べます。ありがとうございました。 – user850062

関連する問題