使用 apache 的commons-io
包下的FileUtils,import org.apache.commons.io.FileUtils;
下载地址:http://commons.apache.org/proper/commons-io/download_io.cgi
官方API文档:http://commons.apache.org/proper/commons-io/apidocs/org/apache/commons/io/FileUtils.html
静态方法可以直接使用类名使用
maven 创建的java工程,导入依赖
commons-fileupload
commons-fileupload
1.3.3

static void
copyFile(File srcFile, File destFile)
Copies a file to a new location preserving the file date.
static void
copyFile(File srcFile, File destFile, boolean preserveFileDate)
Copies a file to a new location.
static long
copyFile(File input, OutputStream output)
Copy bytes from a File
to an OutputStream
.
static void
copyFileToDirectory(File srcFile, File destDir)
Copies a file to a directory preserving the file date.
static void
copyFileToDirectory(File srcFile, File destDir, boolean preserveFileDate)
Copies a file to a directory optionally preserving the file date.
static void
copyInputStreamToFile(InputStream source, File destination)
Copies bytes from an InputStream
source
to a file destination
.
static void
copyToDirectory(File src, File destDir)
Copies a file or directory to within another directory preserving the file dates.
static void
copyToDirectory(Iterable srcs, File destDir)
Copies a files to a directory preserving each file's date.
static void
copyToFile(InputStream source, File destination)
Copies bytes from an InputStream
source
to a file destination
.
static void
copyURLToFile(URL source, File destination)
Copies bytes from the URL source
to a file destination
.
static void
copyURLToFile(URL source, File destination, int connectionTimeout, int readTimeout)
Copies bytes from the URL source
to a file destination
.
1)拷贝文件到文件:copyFile(File srcFile, File destFile)
File file = new File("E:\\java\\file01\\abc雪.jpg");
String destFilePath = "E:\\java\\file02";
String destFileName = "abc雪02.jpg";
try {
FileUtils fileUtils = new FileUtils();
//文件拷贝到新的位置并保存文件的日期。
fileUtils.copyFile(file, new File(destFilePath,destFileName));
System.out.println("文件拷贝成功");
} catch (IOException e) {
e.printStackTrace();
System.out.println(e.getMessage());
}
2)拷贝文件到字节输出流。:copyFile(File input, OutputStream output)
String destFileName = "abc雪03.jpg";
//从文件copy to an字节输出流。
FileUtils.copyFile(file, new FileOutputStream(new File(destFilePath,destFileName)));
3)拷贝文件到文件的目录保存文件的日期:copyFileToDirectory(File srcFile, File destDir)
拷贝的文件名无法自定义,和原文件名一样
//拷贝文件到文件的目录保持文件的日期。
FileUtils.copyFileToDirectory(file, new File(destFilePath));
static void
copyDirectory(File srcDir, File destDir)
Copies a whole directory to a new location preserving the file dates.
static void
copyDirectory(File srcDir, File destDir, boolean preserveFileDate)
Copies a whole directory to a new location.
static void
copyDirectory(File srcDir, File destDir, FileFilter filter)
Copies a filtered directory to a new location preserving the file dates.
static void
copyDirectory(File srcDir, File destDir, FileFilter filter, boolean preserveFileDate)
Copies a filtered directory to a new location.
static void
copyDirectoryToDirectory(File srcDir, File destDir)
Copies a directory to within another directory preserving the file dates.
1)将整个目录拷贝到新位置,并保持原文件日期:copyDirectory(File srcDir, File destDir)
其包含文件及子目录文件并保持原文件日期
File file = new File("E:\\java\\file01");
String destFilePath = "E:\\java\\file03";
try {
//将整个目录复制新位置,并保持原文件日期。
FileUtils.copyDirectory(file, new File(destFilePath));
System.out.println("文件目录拷贝成功");
} catch (IOException e) {
e.printStackTrace();
System.out.println(e.getMessage());
}
2)将已筛选的目录拷贝的新位置:copyDirectory(File srcDir, File destDir, FileFilter filter)
文件过滤器筛选 其包含文件及子目录文件 拷贝,并保持原文件日期。
String destFilePath = "E:\\java\\file04";
//将已筛选的目录复制,并保持原文件日期的新位置。
FileUtils.copyDirectory(file, new File(destFilePath), new FileFilter() {
@Override
public boolean accept(File pathname) {
if(pathname.isDirectory()) return true;
else {
boolean b1 = pathname.getName().endsWith(".txt");
boolean b2 = pathname.getName().endsWith(".jpg");
return b1 || b2;
}
}
});
三、删除目录及文件
static void
deleteDirectory(File directory)
Deletes a directory recursively.
static boolean
deleteQuietly(File file)
Deletes a file, never throwing an exception.
static void
forceDelete(File file)
Deletes a file.
1)删除指定文件,从不引发异常:deleteQuietly(File file)
File file = new File("E:\\java\\file04\\abc雪.jpg");
//删除指定文件,从不引发异常。
FileUtils.deleteQuietly(file);
2)删除指定文件,不存在报异常:forceDelete(File file)
File file = new File("E:\\java\\file04\\abc雪.jpg");
try {
FileUtils.forceDelete(file);
System.out.println("操作成功");
} catch (IOException e) {
e.printStackTrace();
System.out.println(e.getMessage());
}
3)递归删除目录:deleteDirectory(File directory)
删除
其包含文件及子目录文件
File file = new File("E:\\java\\file04\\abc雪.jpg");
//递归删除目录。
try {
FileUtils.deleteDirectory(new File(destFilePath));
System.out.println("操作成功");
} catch (IOException e) {
e.printStackTrace();
System.out.println(e.getMessage());
}
四、清除目录:cleanDirectory(File directory)
static void
cleanDirectory(File directory)
Cleans a directory without deleting it.
清除该目录下的文件及子目录文件而不删除该目录文件夹。该目录不存在会报错
String destFilePath = "E:\\java\\file04";
try {
FileUtils.cleanDirectory(new File(destFilePath));
System.out.println("操作成功");
} catch (IOException e) {
e.printStackTrace();
System.out.println(e.getMessage());
}
其他方法查看API文档