2016-05-10 13 views
1

私はFTPサーバーで接続する必要があるアプリケーションで作業しています。次に、 "new_order.txt"という特定のファイルのサイズを取得する必要があります。だから私は完全にそのアプリケーションで作業していたときに動作していたメソッドmlistFile(String filePath)を使用しています。しかし今、mlistFileはnullを返しています.getSize()を使用すると、アプリケーションがクラッシュしています(ただし、サーバーに接続しています)。何がうまくいかないかを見つけるためには、本当に助けが必要です。ここでAndroid - FTPClient - mlistFileがnullを返す

コードです:

try { 
     String filePath = "new_order.txt"; 
     FTPFile ftpFile = mFtpClient.mlistFile(filePath); 
     sizeFileFTPServer = ftpFile.getSize(); 

     File downloadedFile = new File(mainActivity.getDir("JSONDir", Context.MODE_PRIVATE), "new_order.txt"); 
     sizeDownloadedFile = downloadedFile.length(); 

    } catch (IOException e) { 
     e.printStackTrace(); 
    } 

    Log.d("SIZE FTP", Long.toString(sizeFileFTPServer)); 
    Log.d("SIZE LOCAL", Long.toString(sizeDownloadedFile)); 

    return (sizeDownloadedFile == sizeFileFTPServer); 

そして、ここでは私のエラーです:

Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'long org.apache.commons.net.ftp.FTPFile.getSize()' on a null object reference 
                     at test.taxi.comincar.GetUpdate.fileOrderVerification(GetUpdate.java:249) 
                     at test.taxi.comincar.GetUpdate.get_new_order(GetUpdate.java:151) 
                     at test.taxi.comincar.GetUpdate.doInBackground(GetUpdate.java:75) 
                     at test.taxi.comincar.GetUpdate.doInBackground(GetUpdate.java:43) 
                     at android.os.AsyncTask$2.call(AsyncTask.java:288) 

私は、サーバーに接続されているんだ、指定したファイルが存在している、私のコードはよく私がいた最後の時間を働いていましたこのアプリで働いて、今はそうではありません。道に迷いました。

+0

サーバーログにアクセスできますか?あなたはそれを追加できますか?そうでなければ 'mlistFile'をデバッグしてどのようなレスポンスを受け取ることができますか? –

答えて

0

私もこの問題があります。 このコードをFTPでサイズを取得するには

FTPFile[] ff = ftp.listFiles("/dir/file.jpg"); 

     if(ff != null) 
     { 
       ff[0].getSize(); 
     } 
関連する問題