2010-12-30 7 views
1

私の質問は、Webサービスを介してpdfファイルを送信し、そのファイルから多くのファイルを含むフォルダから1MBのファイルしか取得しないということです。Webサービスを介してフォルダから1MBのファイルしか送信しない

この質問を解決するのを手伝ってください。私はウェブサービスを初めて利用しています。 明確でない場合はもう一度お問い合わせください。 ありがとうございました。

+0

あるすべてのファイルのリストを返しますか? –

+0

apache axis web service on apache tomcat 6.0.20。 –

+0

どのようにwebserviceを通じてpdfを送信する予定ですか?石鹸の添付ファイルまたはmtom? –

答えて

1

次のような方法では合計サイズは、使用しているWebサービスの風味< = 1Mbの

public List<File> getFilesList(){ 
    File dirLoc = new File("C:\\Temp"); 
    List<File> validFilesList = new ArrayList<File>(); 
    File[] fileList; 
    final int fileSizeLimit = 1024000; // Bytes 
    try { 
     // select all the files whose size <= 1Mb 
     fileList = dirLoc.listFiles(new FilenameFilter() { 
      public boolean accept(final File dirLoc, final String fileName) { 
       return (new File(dirLoc + "\\" + fileName).length() <= fileSizeLimit); 
      } 
     }); 
     long sizeCtr = fileSizeLimit; 
     for(File file : fileList){ 
      if(file.length() <= sizeCtr){ 
       validFilesList.add(file); 
       sizeCtr = sizeCtr - file.length(); 
       if(sizeCtr <= 0){ 
        break; 
       } 
      } 
     } 
    } catch (Exception e) { 
     e.printStackTrace(); 
     validFilesList = new ArrayList<File>(); 
    } finally { 
     fileList = null; 
    } 
    return validFilesList; 
} 
+0

あなたの答えをありがとうが、私はこの質問への解決策を得た。 \t if(outputFolder.listFiles()。length!= 0){ \t \t \t trackFile = outputFolder.listFiles()。length; \t \t \t files = trackFile; \t \t} \t \t一方(サイズ<= 1048576){ \t \t \tサイズ+ = SENDFILES [ファイル]。length(); \t \t \tファイル++; \t \t \t numberOfFiles ++; \t \t \t \tオブジェクト[] obj = new Object [numberOfFiles]; –

0

私はこれが何をしたいですが、あなたがして、ファイルを選択し、そのサイズを確認することができるかどうかわからない:そのサイズは1 MBですファイルを送信

java.io.File file = new java.io.File("myfile.txt"); 
file.length(); 

File.length()Javadoc

+0

こんにちはDeepak私はfolder.Butからの各ファイルのサイズを計算したくないだけ特定のフォルダからファイルの1メガバイトを取得したい。私はあなたの疑いを明確にすることを願っています。 –

1

あなたの要件を正しく理解しているかどうか、これが問題の解決に役立つかどうかはわかりませんが、ディレクトリからファイルをフィルタリングするためにこのJavaソリューションを試すことができます。
あなたはファイルのリストを取得し、その後、あなたは、これらのファイル

File dirLoc = new File("C:\\California"); 
File[] fileList; 
final int fileSize = 1024000; 

try { 
    fileList = dirLoc.listFiles(new FilenameFilter() { 
     public boolean accept(final File dirLoc, final String fileName) { 
      return (new File(dirLoc+"\\"+fileName).length() > fileSize); 
     } 
     }); 
} catch (Exception e) { 
    e.printStackTrace(); 
} finally { 
    fileList = null; 
} 

これは動作するはず

を送信するためにWebサービスに固有のコードを使用することができます。
あなただけのファイル名が必要な場合は、 list()
String[].listFiles()File[]を置き換えるでも、私はパフォーマンスについて多くを語ることはできません。小さなファイルリストの場合、かなり高速に動作するはずです。

+0

返信ありがとうございますが、サイズが1mb以上のファイルを私に与えることができます。主に、サイズが完全に1MBになるフォルダからファイルを収集したいとします。つまり、フォルダ内に12個のファイルを置くようにしました。 (1ファイルであろうと2ファイルであろうと)ファイルをWebサービスに送信することができます。 –

関連する問題