- 締切済み
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; }
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- いけだ ひろし(@ike-2000)
- ベストアンサー率53% (69/129)
#2です。 Folderは正しいですか。 絶対パスですか。システムプロパティ:user.dirとうまく整合しますか。 そのあたりをログ(c:\tmp\logにでも)を出力して確認してみるべきです。
あるディレクトリにある、ファイルだけを抽出したいなら、 File#listFiles を使うのも一つの手です。
- いけだ ひろし(@ike-2000)
- ベストアンサー率53% (69/129)
まずは回答以外から。このようなために内部ログ(トレース)を入れる習慣をつけておくのが良いと思います。 このプログラムはさーばとクライアントで別々ですか?。それともWindowsの機能でネットワークをアクセスさせているのでしょうか?。後者であればWindowsに依存してしまうため稀にエラーになるかもと言うのは少しは理解できます。 とにかく情報不足です。
- mintia007
- ベストアンサー率59% (16/27)
APIマニュアルを良く読みましょう^^。 http://java.sun.com/javase/ja/6/docs/ja/api/java/io/File.html#list() 恐らくExtractFileメソッドの引数であるString Folderの文字列ですが、指定したフォルダが無かったり、そもそもフォルダでは無いのでは(ファイルを指定してしまっている等)?
補足
回答有難うございます。 返事が遅くなりスミマセン。 フォルダがないとかは、ないと思います。 サーバにアップロードした画像を表示させる処理をやっているので クラスのfileがユーザ側とサーバ側のディレクトリの識別ができなくなっているのかなあ?
補足
Windows XPでtomcatをつかっています。 Windowsに依存していると思うのですが、この不具合を何とかする方法はありますか? 推奨されませんと警告が出るのですが以下の処理を実行してます。 String Folder = request.getContextPath() + "/dmiPictcher";//サーバ側の相対アドレス String Folder3 = request.getRealPath("/dmiPictcher");//サーバ側の絶対アドレス(画像が認識されないから作った。)