7

javaのsolaris10osのファイルからハードリンクカウントを取得するために何かが必要です。

ls-lの解析はオプションではありません。

posix for java http://bmsi.com/java/posix/index.htmlを使用してみましたが、機能させることができませんでした。

この情報を取得するための他の軽量APIまたはコードはありますか?

4

3 に答える 3

12

Java 7 では、新しいファイル属性 APIを使用して で取得でき ますjava.nio.file.Files.getAttribute(path, "unix:nlink")

「unix」属性ビューは、実際には標準 API の一部として定義されていません (また、「posix」ビューは nlink を提供しません) が、標準の Oracle/OpenJDK 実装で使用できます。一方、リンクの作成は の標準的なcreateLink方法で利用できるようになりましたFiles。図に行きます。

于 2012-06-15T11:28:16.683 に答える
2

C でJNIstat/を使用lstatする以外に、ls を解析するよりも優れているのは、次のコマンドを実行することだけです。

stat --format=%h filename

数値を出力するだけで、解析が簡単です。

しかし、ファイル名にASCII以外の文字が含まれる可能性があると、すべてが複雑になります。ファイル名をネイティブ エンコーディングに変換する必要があり、ファイル名で許可されているすべての文字を変換できない場合があります (ネイティブ エンコーディングがある種の Unicode でない場合)。

于 2012-06-15T07:45:15.223 に答える
0

また、これにはstat(2)のjnr-posix実装を試すことを検討してください。

于 2015-07-05T19:49:11.927 に答える