Prasanna
Prasanna

Reputation: 468

How to get .png files alone from one folder

Actually, i'm trying to zip all the files from one folder & .png files from another folder. I can able to get all the files from one folder. But i can't able to get the .png files from another folder in java. Is there any way ?

Code:

public class Zip {
    public static void zip(String filepath,String reportFileName){
        try {
            File inFolder=new File(filepath);
            File inFolder1=new File("../Agent_Portal_Auto_Testing/ReportCharts");
            File outFolder=new File(reportFileName);
            ZipOutputStream out = new ZipOutputStream(new BufferedOutputStream(new FileOutputStream(outFolder)));
            BufferedInputStream in = null;
            byte[] data  = new byte[1000];
            String files[] = inFolder.list();
            String files1[]=inFolder1.list();
            for (int i=0; i<files.length; i++) {
                in = new BufferedInputStream(new FileInputStream
                        (inFolder.getPath() + "/" + files[i]), 1000);  
                out.putNextEntry(new ZipEntry(files[i])); 
                int count;
                while((count = in.read(data,0,1000)) != -1) {
                    out.write(data, 0, count);
                }
            }

            for (int i=0; i<files1.length; i++) {
                in = new BufferedInputStream(new FileInputStream
                        (inFolder1.getPath() + "/" + files1[i]), 1000);  
                out.putNextEntry(new ZipEntry(files1[i])); 
                int count;
                while((count = in.read(data,0,1000)) != -1) {
                    out.write(data, 0, count);
                }
            }
            out.closeEntry();
            out.flush();
            out.close();

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

In the above code, i'm getting all the files from ReportCharts folder. But i need to get only the .png files.

Upvotes: 0

Views: 2336

Answers (2)

Eugen Halca
Eugen Halca

Reputation: 1785

you can add verify if you file is a .png one with :

if (files1[i].contains(".png"))

in your for loop.

Upvotes: 0

Kalpak Gadre
Kalpak Gadre

Reputation: 6475

See http://docs.oracle.com/javase/7/docs/api/java/io/File.html#listFiles(java.io.FileFilter)

You can use the file filter to filter out only the PNG files

http://docs.oracle.com/javase/7/docs/api/java/io/FileFilter.html

 File [] pngFiles = directory.listFiles(new FileFilter() {
     public boolean accept(File file) {
         return file.isFile() && file.getName().toLowerCase().endsWith(".png");
     }
 });

Upvotes: 4

Related Questions