前言:
此时兄弟们对“java获取目录下的所有文件名”可能比较着重,姐妹们都需要剖析一些“java获取目录下的所有文件名”的相关知识。那么小编在网络上收集了一些有关“java获取目录下的所有文件名””的相关文章,希望咱们能喜欢,兄弟们快快来学习一下吧!依赖
import org.springframework.web.multipart.MultipartFile;import org.springframework.web.multipart.MultipartHttpServletRequest;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.io.*;import java.net.URLEncoder;import java.util.*;
新建多层级文件目录 + 文件上传
public ResultData upload(MultipartFile file, String path) { if (file.isEmpty()) { return ResultData.error(10006, "文件为空!"); } String fileDirStr = pre + path; File fileDir = new File(fileDirStr); if (!fileDir.exists()) { //判断文件父目录是否存在 fileDir.mkdirs();//所有目录创建 } String originalFilename = file.getOriginalFilename(); File localFile = new File(fileDirStr, originalFilename); try { file.transferTo(localFile); return ResultData.success(fileDirStr + originalFilename, "上传成功"); } catch (Exception e) { return ResultData.error(e.getMessage(), "上传失败"); }}
获取目录下所有文件
public List<String> getFileList(String filepath) { List<String> list = new ArrayList<>(); File folder = new File(pre + filepath); File[] files = folder.listFiles(); for (File file : files) { System.out.println(file.getName()); list.add(pre + filepath + "/" + file.getName()); if (file.isDirectory()) { System.out.println(file.getPath()); break; } } return list;}
文件浏览器下载
public void download(String path, HttpServletResponse response) { try { // path是指想要下载的文件的路径 File file = new File(pre + path); log.info(file.getPath()); // 获取文件名 String filename = file.getName(); // 获取文件后缀名 String ext = filename.substring(filename.lastIndexOf(".") + 1).toLowerCase(); // 将文件写入输入流 FileInputStream fileInputStream = new FileInputStream(file); InputStream fis = new BufferedInputStream(fileInputStream); byte[] buffer = new byte[fis.available()]; fis.read(buffer); fis.close(); // 清空response response.reset(); // 设置response的Header response.setCharacterEncoding("UTF-8"); //Content-Disposition的作用:告知浏览器以何种方式显示响应返回的文件,用浏览器打开还是以附件的形式下载到本地保存 //attachment表示以附件方式下载 inline表示在线打开 "Content-Disposition: inline; filename=文件名.mp3" // filename表示文件的默认名称,因为网络传输只支持URL编码的相关支付,因此需要将文件名URL编码后进行传输,前端收到后需要反编码才能获取到真正的名称 response.addHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(filename, "UTF-8")); // 告知浏览器文件的大小 response.addHeader("Content-Length", "" + file.length()); OutputStream outputStream = new BufferedOutputStream(response.getOutputStream()); response.setContentType("application/octet-stream"); outputStream.write(buffer); outputStream.flush(); } catch (IOException ex) { ex.printStackTrace(); }}
版权声明:
本站文章均来自互联网搜集,如有侵犯您的权益,请联系我们删除,谢谢。
标签: #java获取目录下的所有文件名