• 締切済み

stat関数をJavaで実現するには?

C言語をJavaで置き換える質問です。 C言語のプログラムで下記のようなファイルチェックを行っています。  struct stat st;  stat(file, &st);  if ((st.st_mode & 040000) == 0 ||    (st.st_mode & 020000) == 0) {    エラー処理  } 上記の処理をJavaではどのように実現できるでしょうか? 環境は下記の通りです。 OS:Solaris 9 J2SE 5.0 ご教授願います。

みんなの回答

  • salsberry
  • ベストアンサー率69% (495/711)
回答No.2

一番単純な解は、JNIを使って該当部分だけCで書くことでしょう。

wiretaka
質問者

お礼

ありがとうございました。

wiretaka
質問者

補足

やはり単純にJavaでの置き換えは難しそうですね。 Cを使うことは難しいので、仕様の見直しを図ります。 ご回答ありがとうございました。

  • salsberry
  • ベストアンサー率69% (495/711)
回答No.1

040000: S_IFDIR 020000: S_IFCHR でいいですか? java.io.FileクラスのisDirectoryを使えばS_IFDIRの判定はできる。S_IFCHRのほうは相当するメソッドがおそらく存在しない。

wiretaka
質問者

お礼

ご回答ありがとうございました。

wiretaka
質問者

補足

ご解答ありがとうございます。 私も"040000"はisDirectoryで可能というところまでは調査できました。 実際困っているのが"020000"です。 相当するメソッドがないのであれば、何か打開策はないでしょうか? ご存知であればご教授願います。

関連するQ&A