6

ある種のファイルブラウザを作ってみました。パスの下のファイルがクロスプラットフォームで実行可能かどうかを知りたい。

boost :: filesystemでそのようなことを行う方法は?

4

2 に答える 2

4

POSIXパーミッションは「クロスプラットフォーム」ではないため、Boostにはパーミッションに関する情報はありません。

必要に応じて、プラットフォーム固有のAPIを自由に使用できます。ごめん!

于 2011-04-19T16:24:34.577 に答える
1

QTを試すことができます。クロスプラットフォームです。ファイルを処理するときに、オペレーティングシステムの違いを気にする必要はありません。ただし、「実行可能」とはどういう意味かは不明です。ファイルパーミッションについて話している場合、OTはこの種の情報を提供できます(QFileクラスのドキュメントを参照してください)。実際に実行できるかどうかを知りたい場合は、何らかのファイル拡張子の規則が必要です。たとえば、Windowsの.exe。ファイルの最初のビットを調べて、それがバイナリであるかどうかを知る方法があるかもしれませんが、そのためのライブラリ呼び出しを見つけることはできないと思います。このために、いくつかのプラットフォーム固有のルーチンを実装する必要があります。私が間違っていなければ、ファイルブラウザは主にファイルの拡張子を調べてタイプを見つけます。例えば、pdfのファイル拡張子をexeに変更すると、Windowsエクスプローラーはこのファイルを実行可能ファイルと見なします。明らかにファイルタイプの仮定の後、実行可能ファイルのアイコンなど、ファイルに関する他のいくつかのことを学習しようとすることができます。ただし、最初は拡張機能のみを確認します。そうしないと、多数のファイルを含むディレクトリを参照するのが非常に遅くなります。

私はここにいくつかの関連情報を与えたことを願っています

于 2011-04-19T21:14:26.710 に答える