读取项目中静态资源文件下的所有文件,比如是所有图片

请求需要传入文件夹路径

这是后台代码import java.io.File;
import java.io.IOException;
import java.net.MalformedURLException;
import java.util.ArrayList;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

/**
* 文件预览辅助类
* @author zhy
*
*/
@Controller
public class FileBrowseUtil {
   /**
    * 通过ajax请求获取传入的文件路径里边的文件fileList数组
    * @param req
    * @param resp
    * @param params 文件夹路径参数
    * @return
    * @throws ServletException
    * @throws IOException
    * @throws MalformedURLException
    */
   @RequestMapping("/getFileList")
   @ResponseBody
   protected ArrayList<String> CalculateGeoServlet(HttpServletRequest req,
           HttpServletResponse resp,String params) throws ServletException, IOException,
           MalformedURLException {
       ArrayList<String> fileList=new ArrayList<String>();
       String dir = req.getSession().getServletContext().getRealPath(params);
       fileList=getFiles(dir);
       return fileList;
   }
   /**
    * 通过递归得到某一路径下所有的目录及其文件
    * @param filePath 文件路径
    * @return
    */
   public ArrayList<String> getFiles(String filePath) {
       ArrayList<String> fileList = new ArrayList<String>();
       File root = new File(filePath);
       File[] files = root.listFiles();
       for (File file : files) {
           if (file.isDirectory()) {
               /*
                * 递归调用
                */
               getFiles(file.getAbsolutePath());
               fileList.add(file.getAbsolutePath());
           } else {
               String picPathStr = file.getAbsolutePath();
//             String picPathStr = file.getAbsolutePath().replaceAll("\\\\","//");
               fileList.add(getFileNameWithSuffix(picPathStr));
           }
       }
       /*for(String str:fileList){
           System.out.println(str);
       }*/
       return fileList;
   }
   /**
    * 保留文件名及后缀
    */
   public String getFileNameWithSuffix(String pathandname) {
       int start = pathandname.lastIndexOf("\\");
       if (start != -1 ) {
           return pathandname.substring(start + 1);
       } else {
           return null;
       }
   }
   /**
    * 仅保留文件名不保留后缀
    */
   public String getFileName(String pathandname) {
       int start = pathandname.lastIndexOf("\\");
       int end = pathandname.lastIndexOf(".");
       if (start != -1 && end != -1) {
           return pathandname.substring(start + 1, end);
       } else {
           return null;
       }
   }
}

原文地址:https://www.cnblogs.com/zhhy/p/9762616.html

时间: 2024-10-13 19:18:18

读取项目中静态资源文件下的所有文件,比如是所有图片的相关文章

Weex/Vue项目中静态资源缓存处理.md

目录 一.项目缓存问题 二.浏览器本地缓存 三.解决方案 今年公司技术考察,考察了EMAS平台,从而接触了weex,并且为了进行POC测试,大胆采用weex进行新web项目试点.weex内置了vue框架,整体框架与vue一致,好在刚接触了vue一段时间,因此用起来还算顺手,碰到问题weex官方文档没有的,基本都可以参考vue的文档. 一.项目缓存问题 第一次接触这类前后端完全分离的开发模式,一开始的确是一头雾水,一个多月时间,难点一点一点克服,目前进入项目测试阶段,经常碰到bug修复了,测试人员

C# 获取文件路径,读取项目中某程序集下文件

获取文件路径 ------------------------------------------------------------------------- winform获取文件路径: string str1 =Process.GetCurrentProcess().MainModule.FileName;//获得当前执行的exe的文件名.string str2=Environment.CurrentDirectory;//获取和设置当前目录的完全限定路径.string str3=Dire

27.Spring-Boot中拦截器中静态资源的处理(踩过坑)以及Spring mvc configuring拓展介绍

一.springboot中对静态资源的处理 默认情况下,springboot提供存放放置静态资源的文件夹: /static /public /resources /META-INF/resources 对于maven项目即就是存在src/main/resources 文件夹下. ? 如图:static文件夹就是springboot中默认的文件夹 在页面中这样写路径<link href="themes/bootstrap.min.css" rel="stylesheet&

快速清除Andorid项目中无用资源

在做项目的时候,随着项目不断迭代,项目包越来越大,同时项目中无用的资源文件或数据越来越多,不仅导致发出的APP包很大,多达20M,还影响程序的性能及产品体验.我们通常做的方法就是自动手工找出或是用一些jar包工具(如androidunusedresources.jar)来找出项目中无用资源,然后手工删除,工作量可想而知,做过这个活的都知道其中的苦. 今天看到了一篇自动删除Android项目中的无用资源的文章:http://nashlegend.blog.51cto.com/5635342/165

Project: 如何调配项目中的资源?

在实际项目中出现资源冲突或者过度资源分配的情况,项目负责人\经理需根据项目中人员同时处理的任务进行优先级评估,根据评估结果进行资源调配,在Project Professional 2016中,资源调配方法有两种:自动调配资源或手动调配资源. 自动调配资源 自动调配过度资源,会延长项目工期,如果在项目负责人\经理与客户达成共识的情况下,可以采用该方法来自动串行拆分任务安排,这样可以减少项目负责人\经理的工作量.以"新产品研发"为例,自动调配资源操作步骤如下所示:1.打开"新产品

四、处理项目中的资源文件:es6、css、图片压缩、图片转成base64的编码形式

新建目录 Coponents : 放需要的应用组件,创建layer组件: --App.js : 应用的入口 --创建layer组件: Layer.html Layer.less Layer.js --修改配置文件: *记得安装插件html-webpack-plugins; loader 官网 => Using Loaders 处理资源文件:接受一个资源文件作为参数,处理完返回一个资源文件:比如 CoffeeScript or JSX.这两种原本webpack不支持的格式: 特性: --串联 --

eclipse 项目中搜索资源(类方法,文件名,文件中的字符串)

http://www.cnblogs.com/fangyukuan/archive/2010/04/05/1704852.html效果很好 编辑相关快捷键 Eclipse的编辑功能非常强大,掌握了Eclipse快捷键功能,能够大大提高开发效率.Eclipse中有如下一些和编辑相关的快捷键. 1. [ALT+/] 此快捷键为用户编辑的好帮手,能为用户提供内容的辅助,不要为记不全方法和属性名称犯愁,当记不全类.方法和属性的名字时,多体验一下[ALT+/]快捷键带来的好处吧. 2. [Ctrl+O]

IDEA的maven项目中 静态文件编译的问题

IDEA的maven项目中,默认源代码目录下的xml等资源文件并不会在编译的时候一块打包进classes文件夹,而是直接舍弃掉. 如果使用的是Eclipse,Eclipse的src目录下的xml等资源文件在编译的时候会自动打包进输出到classes文件夹.Hibernate和Spring有时会将配置文件放置在src目录下,编译后要一块打包进classes文件夹,所以存在着需要将xml等资源文件放置在源代码目录下的需求. 解决IDEA的这个问题有两种方式. 第一种是建立src/main/resou

IDEA 相对路径读取项目中的文件

1.目标:想要读取该项目中的resources下的prop文件夹中的text.txt文件 2.实现方法: // 读文件 String path = this.getClass().getClassLoader().getResource("./prop/text.txt").getPath(); FileReader fr = new FileReader(path); BufferedReader br = new BufferedReader(fr); String str = n