0

如何将多个文件传递给另一个类?

我正在开发一个应用程序,它首先压缩图像,然后将其转换为 pdf。

我编写的程序单独运行良好,即;它压缩图像,然后在另一个项目中我使用存储图像的路径将其转换为 pdf。

现在我想将这两个代码都放在同一个项目中,我遇到了一个问题,我正在创建一个循环,在该循环中我一个一个地传递路径名。源路径运行良好,但我需要指定动态更改名称的目标路径,这是我面临问题的地方。我附上了下面的代码,请告诉我该怎么做。

        System.out.println("before convert");
        Conversion cc = new Conversion();
        File directory = new File(Success);
        File[] files = directory.listFiles();
        if(files!=null)
        {
            for(File f:files){
                String path = f.getName();
                System.out.println("The Name of file is="+path); 
                cc.createPdf("path" , "output", true);
                System.out.println("the file is ="+output+".pdf");
                System.out.println("after convert");
            }
        }

在上面的代码中,我需要在这里动态更改输出文件名 cc.createPdf("path" , "output", true);

4

3 回答 3

0

A simple implementation would be to keep a counter outside loop and increment it before appending it to output file name

        int counter = 0;
        for(File f:files){
            String path = f.getName();
            System.out.println("The Name of file is="+path); 
            counter++; //increment the counter
            cc.createPdf("path" , "output"+counter, true); // append it to output
            System.out.println("the file is ="+output+".pdf");
            System.out.println("after convert");
        }

For more robustness, counter can be replaced by UUID generator, System time in milliseconds etc

于 2013-06-07T05:37:57.463 回答
0

Im guessing your having trouble getting a File object with a newly created .pdf extension, you will have to adapt this to your code but it should be pretty straight forward.

File inputFile = new File("c:\\myimage.png");
String fileName = inputFile.getName();
File pdfFile = new File(inputFile.getParent(), fileName.substring(0, fileName.indexOf(".")) +".pdf");
System.out.println(inputFile + " " + pdfFile);
于 2013-06-07T05:38:58.753 回答
0

我认为您应该通过将“.pdf”附加到名称来保持简单。您正在处理目录这一事实可确保源文件名是唯一的。因此,新的“.pdf”名称也将是唯一的。

假设您的输出文件位于同一目录中,那么按名称对文件进行排序并立即知道哪些“.pdf”文件与哪些源文件相关联也变得容易得多。

所以,你的输出文件名就变成了

String path = f.getName();
String output = path.substring(0, path.lastIndexOf('.')) + ".pdf";
于 2013-06-07T05:47:14.053 回答