gpt4 book ai didi

java获取文件路径

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:58:29 25 4
gpt4 key购买 nike

我有一个 jsp 页面,其中包含打印给定目录中的所有文件及其文件路径的代码。代码是

if (dir.isDirectory())        {            File[] dirs = dir.listFiles();            for (File f : dirs)            {                if (f.isDirectory() && !f.isHidden())                {                    File files[] = f.listFiles();                    for (File d : files)                    {                        if (d.isFile() && !d.isHidden())                        {                            System.out.println(d.getName()+                             d.getParent() + (d.length()/1024));                        }                    }                }                if (f.isFile() && !f.isHidden())                {                    System.out.println(f.getName()+                     f.getParent() + (f.length()/1024));                }            }        }

问题是它打印了完整的文件路径,从 tomcat 访问时该路径无效。例如,代码吐出以下路径:

/usr/local/tomcat/sites/web_tech/images/scores/blah.jpg

我希望它只打印到/images 的路径,即

/images/scores/blah.jpg

我知道我可以随便处理一个实际的字符串,即拆分它或进行字符串匹配,但是有更简单的方法吗?

谢谢

最佳答案

像 webapp 那样依赖文件系统(即使用绝对路径)并不是好的做法,这会使您的代码的可移植性降低。

您应该将文件保存在resources 目录中,并使用ClassLoader 加载相对于类路径的文件。参见 ClassLoader.getResource()ClassLoader.getResourceAsStream() .另一种选择是使用 ServletContext.getResource()ServletContext.getResourceAsStream() .您可以使用继承的 getServletContext() 获取 servlet 中的 ServletContext方法。

关于java获取文件路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2702272/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com