Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将多个文件传递给另一个类_Java_File_Dynamic - Fatal编程技术网

Java 将多个文件传递给另一个类

Java 将多个文件传递给另一个类,java,file,dynamic,Java,File,Dynamic,如何将多个文件传递给另一个类 我正在开发一个应用程序,首先压缩图像,然后将其转换为pdf格式 我所写的程序分别运行良好;它压缩图像,然后在另一个项目中,我使用存储图像的路径将其转换为pdf 现在我想在同一个项目中使用这两个代码,我遇到了一个问题,我正在创建一个循环,在其中我逐个传递路径名。源路径工作得很好,但我需要指定目标路径,该路径会动态更改名称,这是我面临的问题。我已经附上下面的代码,请告诉我怎么做 System.out.println("before convert");

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

我正在开发一个应用程序,首先压缩图像,然后将其转换为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)

一个简单的实现是在将其附加到
输出
文件名之前,保留一个
计数器
外部循环并递增

        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");
        }

为了更加健壮,
计数器可以替换为,以毫秒为单位的系统时间等

我猜您在获取带有新创建的.pdf扩展名的文件对象时遇到了问题,您必须根据您的代码进行调整,但这应该非常简单

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);

我认为你应该简单一点,在名字后面加上“.pdf”。处理目录这一事实确保了源文件名是唯一的。因此,新的“.pdf”名称也将是唯一的

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

因此,您的输出文件名就变成了

String path = f.getName();
String output = path.substring(0, path.lastIndexOf('.')) + ".pdf";

你能具体说明你面临的问题吗?如果您需要动态命名输出文件,那么您需要什么样的标准,比如向其添加日期时间戳。一些特定的命名约定,其中包含一些动态部分。“新文件(成功);”--什么类型的“成功”?让我困惑的是,它是从大写字母开始的,导致我认为它是一个类。它显然不是-它必须是文件名或URI?我认为它应该是
filename.lastIndexOf(“.”
,因为路径可能有多个点。