1.这是点击"文件上传"(生成一个文件夹,把每次上传的文件放入到这个文件夹里面)
@ResponseBody
@RequestMapping("/upload")
public JSONArray insertMessageXML(MultipartHttpServletRequest request){
Iterator<String> fileNames = request.getFileNames();
while (fileNames.hasNext()) {
//把fileNames集合中的值打出来
String fileName = fileNames.next();
System.out.println("fileName: " + fileName);
/*
* request.getFiles(fileName)方法即通过fileName这个Key, 得到对应的文件
* 集合列表. 只是在这个Map中, 文件被包装成MultipartFile类型
*/
List<MultipartFile> fileList = request.getFiles(fileName);
if (fileList.size() > 0) {
//遍历文件列表
Iterator<MultipartFile> fileIte = fileList.iterator();
while (fileIte.hasNext()) {
//获得每一个文件
MultipartFile multipartFile = fileIte.next();
//获得原文件名
String originalFilename = multipartFile.getOriginalFilename();
System.out.println("originalFilename: " + originalFilename);
//设置保存路径.
String path = "D:/temporary/Upload/";
//检查该路径对应的目录是否存在. 如果不存在则创建目录
File dir = new File(path);
if (!dir.exists()) {
dir.mkdirs();
}
String filePath = path + originalFilename;
System.out.println("filePath: " + filePath);
//保存文件
File dest = new File(filePath);
if (!(dest.exists())) {
/*
* MultipartFile提供了void transferTo(File dest)方法,
* 将获取到的文件以File形式传输至指定路径.
*/
try {
multipartFile.transferTo(dest);
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
//每上传一个文件,把这个文件名返回给前端
JSONArray jsonArray = new JSONArray();
List list = new ArrayList();
File file=new File("D:/temporary/Upload/");
String test[];
test=file.list();
for(int i=0;i<test.length;i++)
{
list.add(test[i]);
System.out.println("D:/temporary/Upload/文件夹下的文件,且文件名为:"+test[i]);
}
jsonArray.add(list);
return jsonArray;
}
2.删除指定文件夹里面的指定文件
@ResponseBody
@RequestMapping("/deleteFile")
public void deleteFile(String name)throws Exception{
File folder = new File("D:/temporary/Upload/");
File[] files = folder.listFiles();
for(File file:files){
System.out.println(file.getName());
if(file.getName().equals(name)){
file.delete();
System.out.println("被成功删除");
}
}
}
3.这是把A文件夹里面的文件全部复制到B文件夹里面(注意:要引一个依赖)
File file1 = new File("D:/temporary/Upload/");//A文件夹
File file2 = new File("D:/formal/Upload/");//B文件夹
try {
org.apache.commons.io.FileUtils.copyDirectory(file1,file2);
} catch (IOException e) {
e.printStackTrace();
}
注意这是依赖
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.6</version>
</dependency>
4.删除指定文件夹里面的所有文件
@ResponseBody
@RequestMapping("/backMaterial")
public void backMaterial(){
File folder = new File("D:/temporary/Upload/");
File[] files = folder.listFiles();
for(File allfile:files){
System.out.println(allfile.getName());
allfile.delete();
System.out.println(allfile.getName()+"被成功删除");
}
}
5.文件更名(renameTo),注意事项.
(1)java提供了renameTo方法,可以直接将文件名改成我们想要的特定文件名.
(2)文件名中,不能包含特殊的字符.比如 “:” (在我的项目中,因为文件名要改成时间戳+文件名,因此出现了":"这个符号,导致不能成功修改).