3

Ubuntu 12.04 LTS および 10.04 LTS プラットフォームで作業していますが、QDir::mkPath に問題があります。mkPath を使用してパスを作成しようとしています。たとえば、/john/play/games と言って、ファイル game.htm を /home/john/play にコピーします。ファイルをコピーした後、ファイルのパーミッションを rwxr -- r -- に設定しました。サードパーティのアプリケーションがファイル game.htm を読み取ることができるようにします。しかし、ディレクトリ /john、/john/play、および /john/play/games はパーミッション drwxr - x - - で作成されるため、他のアプリケーションや他のユーザーはファイル game.htm を読み取ることができません。

また、別のアプリケーションで、同じ QDir::mkpath が drwxr - xr - x でディレクトリを作成することも確認しました。QDir::mkpath がディレクトリを作成する権限と、権限を制御または設定する方法を理解したいと思います。

4

1 に答える 1

1

skyがコメントで完全に指摘したように、mkdir ルーチンが読み取り可能なディレクトリを作成できるようにするために、環境が台無しになっています。

ただし、umask()OS 関数を使用して、を呼び出す前に umask を別の値に設定することもできますQDir::mkpath#ifdefただし、Windows 上で実行する必要があるかもしれませんがumask()、wnidows の qtcreator によって使用されている mingw 環境に関数が実装されている可能性があります。だから、とにかくうまくいくかもしれません。

于 2012-10-29T14:04:50.437 に答える