精华内容
下载资源
问答
  • 一般为了避免windows系统和linux系统之间路径分隔符的差异,我们会使用File.separator来代替windows下的“\”或者Linux下的“/”,来表示文件路径。 如果需要分割路径来获取文件(夹)名,会用到String.split...

    一般为了避免windows系统和linux系统之间路径分隔符的差异,我们会使用File.separator来代替windows下的“\”或者Linux下的“/”,来表示文件路径。

    如果需要分割路径来获取文件(夹)名,会用到String.split(String regex)方法,直接使用File.separator作为参数会抛异常

    String separator = File.separator;
    		
    String path = "E:\\test\\file1\\file2";
    for (String str : Arrays.asList(path.split(separator))) {
    	System.out.println(str);
    }    

    结果如下:

     这是因为在Windows下,File.separator是“\\”,经过转义识别为“\”,而String.split方法的参数应该是一个正则表达式字符串,传入“\”就会抛这个异常。

     这个时候如果要分割需要再加上一个反斜杠,在代码里应该是两个。

    String separator = File.separator;
    		
    String path = "E:\\test\\file1\\file2";
    for (String str : Arrays.asList(path.split("\\" + separator))) {
    	System.out.println(str);
    }

     但是在Linux系统下,路径分隔符是“'/”分割的时候不需要转义,也就不需要加反斜杠,刚才那种写法就无法胜任了。为了能在Windows和Linux下都能生效,可以使用正则表达“/|\\\\”式来完成。

    String separator = "/|\\\\";
    
    String path = "E:\\test\\file1\\file2";
    for (String str : Arrays.asList(path.split(separator))) {
    	System.out.println(str);
    }

    展开全文
  • 项目中有个预览功能,要求返回给前台base64的图片,但是ftp上只有pdf格式,所以要先将pdf文件在后台转化成jpg放在本地默认的临时文件夹(System.getProperty("java.io.tmpdir"))下,然后通过流读...

           还是想每天坚持写点什么,也是菜的出奇,只能写一些很表层的东西。今天就记录一下工作中遇到docker部署到linux服务器的一个小坑。

           项目中有个预览功能,要求返回给前台base64的图片,但是ftp上只有pdf格式,所以要先将pdf文件在后台转化成jpg放在本地默认的临时文件夹(System.getProperty("java.io.tmpdir"))下,然后通过流读取本地的jpg文件来返回给前端,再删除本地的文件。

         刚开始是没有用docker,直接以jar包的形式在linux上部署运行,是没有问题的。但是用了docker部署之后,本地正常,服务器一直报错找不到文件,这个问题找了一下午(第一次用docker)。最后才发现是docker这个虚拟化容器导致的路径问题。

        因为在linux上直接用jar运行,代码里的System.getProperty("java.io.tmpdir")指向的是linux的根目录下的tmp文件夹,生成的jpg文件会自动创建到tmp中,所以不会报找不到文件的异常。但是用了docker部署之后,因为docker也相当于一个精简版的linux容器,他有自己的路径,跟宿主linux的路径不一致,所以就会报找不到文件的异常。

       解决这个问题的方法有两种:

             1.代码中如果要生成临时文件到本地,最好在默认的工作目录下新建一个file的目录,及System.getProperty("user.dir")+“file”(代码中判断,如果没有则新建),这个路径其实就是你的项目根路径的file文件夹,在linux中就是根目录下的file文件夹,然后直接将宿主根目录的file文件夹(自己建的)挂载到docker的根目录下的file文件夹(问题其实就是生成的文件在docker容器中的/file文件夹中而不在linux的/file下)。这样就解决了因为docker容器造成的与linux宿主容器路径不一致的问题。

             2.挂载宿主的tmp文件夹到docker容器里对应的文件夹(如何操作先看看docker配置,我就只说思路了,未亲测)。

     

        文笔很水,无力吐槽自己,继续努力吧!!!

        

    展开全文
  • JAVA通过文件路径下载文件

    千次阅读 2019-05-17 09:39:05
    import lombok.extern.slf4j.Slf4j; import javax.servlet.http.HttpServletResponse; import java.io.*; import java.net.URLEncoder; ... * 文件下载工具类 */ @Slf4j public class FileDownLoadUtil { /** ...
    import lombok.extern.slf4j.Slf4j;
    
    import javax.servlet.http.HttpServletResponse;
    import java.io.*;
    import java.net.URLEncoder;
    
    /**
     * 文件下载工具类
     */
    @Slf4j
    public class FileDownLoadUtil {
    
        /**
         * 通过文件路径下载文件
         *
         * @param filePath 文件路径
         * @param response
         * @throws Exception
         */
        public static void download(String filePath, HttpServletResponse response) throws Exception {
            // 判断文件是否存在
            File file = new File(filePath);
            log.info("DOWNLOAD PATH:" + filePath);
            if (!file.exists() || file.isDirectory()) {
                log.info("FILE DOES NOT EXIST!");
                return;
            }
            // 自定义文件名
            String filename = file.getAbsolutePath();
            String suffix = filename.substring(filename.lastIndexOf("."));
            //根据UUID重命名文件
            String attachmentName = IdUtils.getId() + suffix;
            response.setHeader("content-disposition", "attachment;filename=" + URLEncoder.encode(attachmentName, "UTF-8"));
            InputStream in = null;
            BufferedInputStream bis = null;
            OutputStream out = null;
            BufferedOutputStream bos = null;
            try {
                in = new FileInputStream(filePath);
                bis = new BufferedInputStream(in);
                byte[] data = new byte[1024];
                int bytes = 0;
                out = response.getOutputStream();
                bos = new BufferedOutputStream(out);
                while ((bytes = bis.read(data, 0, data.length)) != -1) {
                    bos.write(data, 0, bytes);
                }
                bos.flush();
            } catch (Exception e) {
                log.error("THE REQUEST FAILED:" + e.getMessage(), e);
                throw new Exception("THE REQUEST FAILED!");
            } finally {
                try {
                    if (bos != null) {
                        bos.close();
                    }
                    if (out != null) {
                        out.close();
                    }
                    if (bis != null) {
                        bis.close();
                    }
                    if (in != null) {
                        in.close();
                    }
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    
    }

     

    展开全文
  • * 通过文件路径直接修改文件名 * * @param filePath 需要修改的文件的完整路径 * @param newFileName 需要修改的文件的名称 * @return */ private String changeFileName(String filePath, String newFileNa...
    /**
         * 通过文件路径直接修改文件名
         * 
         * @param filePath    需要修改的文件的完整路径
         * @param newFileName 需要修改的文件的名称
         * @return
         */
        private String changeFileName(String filePath, String newFileName) {
            File f = new File(filePath);
            if (!f.exists()) { // 判断原文件是否存在(防止文件名冲突)
                return null;
            }
            newFileName = newFileName.trim();
            if ("".equals(newFileName) || newFileName == null) // 文件名不能为空
                return null;
            String newFilePath = null;
            if (f.isDirectory()) { // 判断是否为文件夹
                newFilePath = filePath.substring(0, filePath.lastIndexOf("/")) + "/" + newFileName;
            } else {
                newFilePath = filePath.substring(0, filePath.lastIndexOf("/")) + "/" + newFileName
                        + filePath.substring(filePath.lastIndexOf("."));
            }
            File nf = new File(newFilePath);
            try {
                f.renameTo(nf); // 修改文件名
            } catch (Exception e) {
                e.printStackTrace();
                return null;
            }
            return newFilePath;
        }

     

    展开全文
  • Linux生成core文件、core文件路径设置

    万次阅读 多人点赞 2017-05-08 20:51:51
    1.设置core文件大小 列出所有资源的限制: ulimit -a ulimit -a.png 或者查看core file size: ulimit -c core file size: unlimited:core文件的大小不受限制 0:程序出错时不会产生core文件 1024:代表1024...
  • Tomcat读取文件时不到文件路径

    千次阅读 2017-08-09 15:56:14
    用file读取相对路径的文件时,在eclipse下面可以正常读取,但是tomcat下面就不到文件路径,下面是解决方法: 1.使用绝对路径来读取,这样虽然可以读取到文件,但是有很多不方便的地方。 2.把要读取的文件放在src...
  • java如何通过绝对路径和相对路径读取文件

    万次阅读 多人点赞 2018-05-29 19:24:20
    当我在写java的数据库连接时,希望通过使用文件的相对路径来读取信息,因为使用绝对路径时在代码移植之后就会出现问题,这不是一个好的方法 0x01 概念 绝对路径:在我们平时使用计算机时要找到需要的文件就必须...
  • 通过文件句柄获得文件路径

    千次阅读 2013-03-25 10:36:30
    Windows系统提供了一个...文件路径。但是路径是以设备名的形式给出的,如类似于 “\Device\HarddiskVolume4\MyCode\C C++\test\test\zengxinxin.txt”,而这个文件在我自己电脑上的路径是 “D:\MyCode\C C++\test\
  • 1,需求分析 文件上传到服务器,查询时展示上传文件信息,实现点击文件...2.1) 通过java代码下载方法 /** * 附件下载 * @param response * @param fileName * @param path * @return * @throws Exception ...
  • vue项目打包后默认是绝对路径项目的根目录下: 将绝对路径改为相对路径: css样式中导入的图片不到: 打包后默认会生成map文件:改成false将不生成map文件减少文件大小 ...
  • 通过python保存一些文件的时候 ,想要通过对话框的方式来添加文件路径网上可以查到很多资料,但是如果要通过对话框的方式来添加文件夹路径却查了好久也没有查到,最后经过一番查找加理解,终于实现了,我猜没有查...
  • java中通过文件路径获取文件名

    万次阅读 2010-08-05 13:27:00
    java中通过文件路径获取文件名 file.getName()
  • linux查找文件路径

    万次阅读 2019-04-19 16:31:12
    1.linux查找可执行文件路径 which命令 例如: 注意:which指令会在环境变量$PATH设置的目录里查找符合条件的文件。 查看环境变量:echo $PATH whereis命令 Linux whereis命令用于查找文件。 该指令会在特定目录中...
  • 一、获取当前文件路径二、获取上一级文件路径这里可以想象出获取与自己同级文件的路径,这么写:即先获取上级目录,然后通过join函数来把同级的目录test拼进来。三、获取当前路径下的所有文件名得到的是一个列表的...
  • 从linux下某路径读取一个图片上传到其他地方,用File对象和FileInputSteam都是不到文件路径不带中文,路径没有错,文件我直接cd 进去可以找到,权限wr都有,就是他妈报 路径文件和文件夹不到的错误
  • mac上获取当前文件路径

    万次阅读 多人点赞 2019-02-17 23:23:02
    实际工作中经常需要获取当前文件路径。在mac中常用的方法有如下几种 方式一 如果只是需要看一下这个文件路径,可以先选中该文件,然后右键,选择显示简介,然后就会显示这个文件的具体路径。快捷键为command+i ...
  • pandas的read_csv()函数读取的文件路径找不到报错: 表现:在python 需要读入路径的API 中经常会遇到这个问题。 原因:这里 因为win系统 下 ,点击文件属性复制路径,路径在前面会有一个多余的奇怪字符。 ...
  • 获取文件路径: Public Sub 文件路径()  Dim strFolder As String  '差异:msoFileDialogFilePicker  With Application.FileDialog(msoFileDialogFilePicker)  '文件对话框的题目,根据个人情况进行设定  ....
  • IDEA中文件的相对路径和绝对路径 对于相对路径: 找到你的文件的相对路径所在的地方右击可以得到如下: ...然后选择copy path,如下图所示: 需要绝对路径和相对路径都可以从下图中...找路径就是这样就是这样简单! ...
  • Qt选择文件路径

    万次阅读 2018-08-22 14:14:39
    QString file_path = QFileDialog::getExistingDirectory(this, "请选择文件路径...", "./"); if(file_path.isEmpty()) { return; }
  • 123456#当前文件路径pwd = os.getcwd()#当前文件的父路径father_path=os.path.abspath(os.path.dirname(pwd)+os.path.sep+".")#当前文件的前两级目录grader_father=os.path.abspath(os.path.dirname...
  • mac电脑查看文件路径

    万次阅读 2019-01-08 18:19:35
    在大部分软件安装过程中,要求软件不能安装在中文路径下,所以,我们经常需要用到文件路径。 当想在mac下知道文件的英文路径,可以将该文件拖到终端窗口得到。 因为,拿我喜欢的一个电影举例《傲慢与偏见》,在...
  • 今天遇到问题, 项目上传了一个GEO文件,但是在容器里运行的时候,不到路径,因为容器里没有项目文件路径,只有一个JAR包, 这样的话,就要在容器里创建一个工作目录,然后打包容器的时候,把文件copy或者 add进...
  • 修改jupyter的工作路径(即保存文件路径

    万次阅读 多人点赞 2019-01-17 10:37:38
    多努力就会有多特殊...默认使用anaconda的jupyter时保存的.ipynb文件路径(工作路径)会在***C:\Users\Administrator***,但在这个目录之下不到jupyter_notebook_config.py 文件。 需要创建jupyter_notebook_...
  • 怎么通过命令行进入指定文件路径

    千次阅读 2018-04-25 21:38:36
    若想进入c盘的其他文件路径下,可以通过在目录下输入cd..进入上一层目录,直到进入c盘根目录;通过命令行输入c:\cd +文件或文件夹路径 进入目标文件夹4.若想进入其他盘下的文件路径通过在命令行默认路径后输入想...
  • NodeJs 文件路径问题

    千次阅读 2018-08-17 22:54:52
    有一如下文件组织结构:...当在路径D:\学习技术\Node.js\StudyProject\NodeJsStudyProject下执行node FS/fsTest.js(获取logs/myblog.txt文件的状态)时报如下错: 从报错信息可以看出,fs.stat('logs/myblog.txt...
  • C#Winform中resx文件无效 不到路径

    万次阅读 多人点赞 2019-08-01 21:16:19
    笔者因为更改了添加的图片的路径,再把路径改成图片所在的路径还是报resx文件无效,未能找到路径 问题原因 其实这个问题是因为对对象的引用修改了,但是resx文件中的应用还是没有修改。因为resx文件中的data标签...
  • 一:什么是classpath? classpath指的就是 *.java文件,资源文件等编译后存放的位置,对于maven项目就是指 target/classes:这个路径,...二、自定义springboot配置文件路径 springboot项目配置文件application.pr...
  • 一般开发都是使用file控件等进行文件上传,今天在开发中遇到js传递包含文件路径的json字符串,于是想在服务器端根据路径进行文件上传,采用流上传。 主要代码为: string filepath = '' //文件上传本地地址; ...
  • python文件路径大全

    万次阅读 2020-07-22 17:06:07
    删除某一目录下的所有文件或文件夹 :param filepath: 路径 :return: """ del_list = os.listdir(filepath) for f in del_list: file_path = os.path.join(filepath, f) if os.path.isfile(file_path): .

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,660,831
精华内容 1,464,332
关键字:

怎么通过文件路径找文件