• 締切済み

NullPointerExceptionの件

あるフォルダからファイルのみを取得する処理です。 うまく動くときもあるのですがたまに←の部分でNullPointerExceptionエラーが起こります。 わかる方は教えてください。 public static String[] ExtractFile(String s[],String Folder){//フォルダからファイルのみを抽出 String umeBackup[]; File f = new File( Folder ); System.out.println("2:" + f.getAbsolutePath()); String files[] = f.list(); int N = files.length; ←←←←← int k; String FileName; for( k=0; k<N; k++ ){ FileName = Folder + "/" + files[k]; File file = new File( FileName ); if( file.isFile() ){ umeBackup = s; s = new String[s.length + 1]; System.arraycopy(umeBackup, 0, s, 0, umeBackup.length); umeBackup = null; s[s.length - 1] =files[k]; } } System.out.println(s.length); f = null; return s; }

みんなの回答

回答No.4

#2です。 Folderは正しいですか。 絶対パスですか。システムプロパティ:user.dirとうまく整合しますか。 そのあたりをログ(c:\tmp\logにでも)を出力して確認してみるべきです。

noname#155524
noname#155524
回答No.3

あるディレクトリにある、ファイルだけを抽出したいなら、 File#listFiles を使うのも一つの手です。

参考URL:
http://java.sun.com/javase/ja/6/docs/ja/api/java/io/File.html#listFiles%28java.io.FileFilter%29
回答No.2

まずは回答以外から。このようなために内部ログ(トレース)を入れる習慣をつけておくのが良いと思います。 このプログラムはさーばとクライアントで別々ですか?。それともWindowsの機能でネットワークをアクセスさせているのでしょうか?。後者であればWindowsに依存してしまうため稀にエラーになるかもと言うのは少しは理解できます。 とにかく情報不足です。

noby-
質問者

補足

Windows XPでtomcatをつかっています。 Windowsに依存していると思うのですが、この不具合を何とかする方法はありますか? 推奨されませんと警告が出るのですが以下の処理を実行してます。 String Folder = request.getContextPath() + "/dmiPictcher";//サーバ側の相対アドレス String Folder3 = request.getRealPath("/dmiPictcher");//サーバ側の絶対アドレス(画像が認識されないから作った。)

  • mintia007
  • ベストアンサー率59% (16/27)
回答No.1

APIマニュアルを良く読みましょう^^。 http://java.sun.com/javase/ja/6/docs/ja/api/java/io/File.html#list() 恐らくExtractFileメソッドの引数であるString Folderの文字列ですが、指定したフォルダが無かったり、そもそもフォルダでは無いのでは(ファイルを指定してしまっている等)?

参考URL:
http://java.sun.com/javase/ja/6/docs/ja/api/java/io/File.html#list()
noby-
質問者

補足

回答有難うございます。 返事が遅くなりスミマセン。 フォルダがないとかは、ないと思います。 サーバにアップロードした画像を表示させる処理をやっているので クラスのfileがユーザ側とサーバ側のディレクトリの識別ができなくなっているのかなあ?

関連するQ&A