Java 通过web服务仅从文件夹发送1mb文件

Java 通过web服务仅从文件夹发送1mb文件,java,web-services,jakarta-ee,Java,Web Services,Jakarta Ee,我的问题是,我想通过web服务发送pdf文件,条件是从包含许多文件的文件夹中仅获取1mb文件 请帮我解决这个问题。我是web服务新手。 如果不清楚,再问我一次。 提前谢谢。我不确定这是否是您想要的,但您可以通过以下方式选择文件并检查其大小: java.io.File file = new java.io.File("myfile.txt"); file.length(); File.length() 发送大小为1 Mb的文件。好吧,我不知道我是否正确理解了您的要求,这是否有助于解决您的问题,但

我的问题是,我想通过web服务发送pdf文件,条件是从包含许多文件的文件夹中仅获取1mb文件

请帮我解决这个问题。我是web服务新手。 如果不清楚,再问我一次。
提前谢谢。

我不确定这是否是您想要的,但您可以通过以下方式选择文件并检查其大小:

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


发送大小为1 Mb的文件。

好吧,我不知道我是否正确理解了您的要求,这是否有助于解决您的问题,但您可以尝试使用此java解决方案从目录中筛选文件。
您将获得一个文件列表,然后可以使用特定于web服务的代码发送这些文件

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服务的所有文件的列表?apache tomcat 6.0.20上的apache axis web服务。您计划如何通过web服务发送pdf?soap附件还是mtom?@Pangea:我将以soap附件的形式发送pdf。我不知道mtom,我想是的。我建议你也看看MTOM,因为它是SOAP附件的更好替代品Hi Deepak我不想计算文件夹中每个文件的大小。但只想从特定文件夹中获取1mb文件。我希望这能消除你的疑虑。谢谢你的回复,但它只会给我大小超过1mb的文件。我主要想从大小完全变为1mb的文件夹中收集文件,例如,我在文件夹中收集了12个文件,从中我检索了总计1mb的文件(无论是1个文件还是2个文件)以发送到web服务。希望能澄清您的疑问。谢谢您的回答,但我找到了这个问题的解决方案。如果(outputFolder.listFiles().length!=0){trackFile=outputFolder.listFiles().length;files=trackFile;}而(size
    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;
}