`

一个通用的动态获取文件路径的方法

阅读更多

1、【问题】

 

在之前的通用查询框架中使用的读取XML配置文件中有一个动态获取文件的方法:

 

 public String getConfFile(String file) {
  URL confURL = getClass().getClassLoader().getResource(file);
  if (confURL == null)
   confURL = getClass().getClassLoader().getResource(
     "META-INF/" + file);
  if (confURL == null)
   confURL = Thread.currentThread().getContextClassLoader()
     .getResource(file);
  if (confURL == null) {
   System.err.println(" cann't find config file:-->" + file);
  } else {
   String filePath = confURL.getFile();
   File file1 = new File(filePath);
   if (file1.isFile())
      return filePath;
  }
  return null;
 }

 

 

 

可是该方法在JDK 1.4.X下运行有问题,无法正常获取路径!

但是在JDK1.5中运行无误!

 

 

2、【分析】

 

经过跟踪发现,在1.4.X下,confURL.getFile()获取的路径如下:

 

/D:/Tomcat%205.0.28/webapps/piccdcms/WEB-INF/classes/config/Module.xml

 

很明显这里的问题在于:Tomcat%205.0.28!!

 

而在JDK 1.5里面是正常的显示:

/D:/Tomcat 5.0.28/webapps/piccdcms/WEB-INF/classes/config/Module.xml

 

 

3、【解决方案】

 

   String filePath = confURL.getFile();
   File file1 = new File(filePath);
   if (file1.isFile())
      return filePath;

 

 

===========》

 

 

   String filePath = confURL.getFile();
   filePath = filePath.replaceAll("%20", " ");
   File file1 = new File(filePath);
   if (file1.isFile())
    return filePath;

 

   修改之后,该方法就可以在JDK1.4中正常使用了!

 

 

4、【总结】

 

对于JDK1.5中的URL.getFile(),能自动把unicode编码(%20)转换过来。而在1.4.X中还不行,必须人为进行转换。

 

分享到:
评论

相关推荐

    BAT批处理脚本-文件相关操作-获取相对路径.cmd.zip

    在这个名为"BAT批处理脚本-文件相关操作-获取相对路径.cmd.zip"的压缩包中,包含了一个用于获取文件相对路径的批处理脚本。 批处理脚本的编写通常涉及到DOS命令,例如`cd`(改变目录)、`dir`(列出目录内容)和`...

    Java文件路径详解

    Class.getResourceAsStream() 方法返回的是一个 InputStream 对象,该对象可以读取文件的内容。该方法有两个参数,第一个参数是文件的相对路径,第二个参数是 Class 对象。相对路径可以是相对于当前类所在的包的路径...

    java 操作文件通用方法集合

    `extractDirPath`方法从给定的文件路径中提取目录路径,返回的是路径中最后一个分隔符(通常为'/'或'\')之前的部分。而`extractFileName`则返回路径中最后一个分隔符之后的部分,即文件名。 ```java String ...

    jsp获取文件完整路径

    可以获取文件完整路径,不过要求环境是在windows下的google浏览器,应为不同浏览器,不同操作系统下获取文件路径方法不同,我没有找到通用的方法,因为浏览器处于安全考虑本身就禁止访问本地中的文件系统。

    JAVA获取各种路径总结

    通过以上介绍,我们可以看到,在Java开发中,无论是Web开发还是普通的Java应用程序开发,获取路径都是一个非常重要且实用的功能。掌握这些方法,可以帮助开发者更好地管理项目中的文件路径,提高程序的灵活性和可...

    windows linux 下,获取java项目绝对路径的方法

    windows linux 下,获取java项目绝对路径的方法,struts2设置了struts.multipart.saveDir后会在根目录建立文件夹,这样会涉及linux下的权限问题

    C#路径文件目录IO常见操作汇总

    使用`Path.GetInvalidPathChars()`或`Path.GetInvalidFileNameChars()`可以获取非法路径或文件名字符,通过遍历路径字符串检查是否存在这些字符,从而判断路径是否有效。 2. **路径类型识别** 可以通过`Directory...

    文件处理通用类

    1. **读取文件**:提供读取整个文件内容的方法,例如,可以将文件内容一次性读入字符串或字节数组。这通常通过BufferedReader或FileInputStream结合BufferedInputStream实现。 2. **写入文件**:允许向文件追加内容...

    Android单图路径获取(华为小米通用)

    要实现华为和小米通用的图片路径获取,可以编写一个方法,首先通过ContentResolver查询MediaStore中的图片信息,然后遍历查询结果,检查每个图片的`data`字段,这通常是图片的绝对路径。对于未出现在MediaStore中的...

    MyEclipse复制完整路径

    至于【标签】"复制路径",这提示我们关注的是MyEclipse中的路径复制功能,无论是在日常的代码编写、调试还是配置项目时,能够快速准确地获取并复制文件路径都是一个非常实用的技能。 【压缩包子文件的文件名称列表...

    VB 获取系统路径

    在VB(Visual Basic)编程中,获取系统路径是一项基本的操作,它允许开发者访问用户的系统资源,如临时文件夹、程序文件夹或者用户个人文件夹等。系统路径的获取对于读写文件、安装程序或者执行系统相关操作至关重要...

    通用对话框保存文件例程易语言源码

    在易语言编程环境中,通用对话框(Common Dialog)是一个非常重要的组件,它为用户提供了一种标准的、统一的方式来与应用程序进行交互,例如打开文件、保存文件等操作。本资源是关于通用对话框保存文件功能的易语言...

    将某表示文件路径的字符串的文件名分离出文件路径

    - **定义变量**:首先定义了一个字符串 `s`,其值为 `"c:/1/11/text.java"`,代表一个文件路径。 - **提取文件名**:通过调用 `s.substring(s.lastIndexOf("/")+1)` 方法,从字符串 `s` 中提取出文件名部分。这里的...

    Java读取“桌面”、“我的文档”路径的方法

    请注意,这只是一个通用的处理方式,实际路径可能因用户的个性化设置或不同版本的操作系统而异。在Linux上,"我的文档"路径可能在`~/.local/share/Documents`,而在macOS上通常与Windows相似,也是`~/Documents`。 ...

    Java路径问题最终解决方案之一.

    在进行Java开发时,文件路径处理一直是令人头疼的问题之一。特别是在涉及跨平台或在不同环境中部署的应用程序时,路径问题更是频繁出现。本文旨在深入探讨Java路径问题,并提供一种有效且通用的解决方案。 #### 二...

    文件路径检查

    在IT行业中,文件路径检查是一项基础但至关重要的任务,特别是在涉及到网络路径时。"文件路径检查"这个主题主要关注如何在C#编程环境下处理和验证包含映射的网络路径,以及如何解决网络路径未启用的问题。下面将详细...

    JS获取input file绝对路径的方法(推荐)

    5. **通用函数**:`getvl`函数用于根据浏览器类型的不同,采取不同的方法获取文件路径。通过识别用户代理字符串来区分不同的浏览器,并应用不同的逻辑以获取文件的路径或URL。IE浏览器中,对于IE6和IE7、IE8分别有...

    Python文件路径名的操作方法

    举例来说,如果你有一个文件路径`/viktor/mysqlinstall/mysql.tar.gz`,你可以通过`Path`对象轻松获取`mysql.tar`作为`stem`,`.gz`作为`suffix`,并使用`with_name()`方法将文件名改为`mysql-5.tgz`。 总结来说,...

    润乾报表子报表路径问题解决方法

    本文主要针对润乾报表在宁夏OMS系统中应用时出现的一个典型问题进行分析和解决。该问题表现为:当用户尝试通过特定的JSP页面(`showReportCZP.jsp`)查看操作票时,系统会提示子报表文件(`czpcb.raq`)不存在的错误...

Global site tag (gtag.js) - Google Analytics