import java.io.File;
import java.io.FileFilter;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class GetSpecFiles implements FileFilter
{
public void getFiles(String location)
{
File file =new File(location);
File []files =file.listFiles();
for(File f :files)
{
if(f.isDirectory())
{
getFiles(f.getPath());
}
else
{
if(accept(f))
{
try
{
this.copyFile(f.getPath(), "F:/files/", f.getName());
}
catch (IOException e)
{
e.printStackTrace();
}
}
}
}
}
/**
* @param args
*/
public static void main(String[] args)
{
GetSpecFiles gsf=new GetSpecFiles();
long time1 = System.currentTimeMillis();
gsf.getFiles("E:/");
long time2 = System.currentTimeMillis();
System.out.print((time2-time1)/(3600*1000));
}
@Override
public boolean accept(File file)
{
try
{
String[] fileName = file.getName().split("//.");
if (fileName[1].equalsIgnoreCase("jpg"))
{
return true;
}
else
{
return false;
}
}
catch (Exception e)
{
return false;
}
}
public void copyFile(String srcFileName, String destFileDirName,
String destFileName) throws IOException {
File srcFile = new File(srcFileName);
File destFileDir = new File(destFileDirName);
File destFile = new File(destFileDirName + destFileName);
FileOutputStream fos = null;
FileInputStream fis = null;
//if the source file is empty.
if (0 == srcFile.length()) {
}
//if target directory dosen't exist, make it.
if (!destFileDir.exists()) {
if (!destFileDir.mkdirs()) {
}
}
try {
fis = new FileInputStream(srcFile);
fos = new FileOutputStream(destFile);
byte[] buffer = new byte[1024];
int i = 0;
//copy content from source file to target file.
while ((i = fis.read(buffer)) != -1) {
fos.write(buffer, 0, i);
fos.flush();
}
} catch (FileNotFoundException e) {
;
} finally {
IOUtil.close(fis);
IOUtil.close(fos);
}
}
}