`
wh8766
  • 浏览: 36105 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

文件路径的转译

阅读更多
文件路径折腾了好久了,参考了很多朋友的方法
目前在实施中还是用的这个方式

URL base = PropertiesReader.class.getResource("/");
	String filePath = base.getFile()+"../proxool.xml";


结果发现地址被URL类给编码了,空格都变成%20
D:/Program%20Files/Apache%20Software%20Foundation/Tomcat%206.0/webapps/xml1/WEB-INF/classes/如果有汉字的话 汉字应该也会被编码(没有测试)
这就成了路径错误异常了..

API中对此的解释为:
引用

URL 类自身并不根据 RFC2396 中定义的转义机制编码或解码任何 URL 部分。由调用方对任何需要在调用 URL 前进行转义的字段进行编码,并对从 URL 返回的任何经过转义的字段进行解码。进一步而言,由于 URL 不懂 URL 转义,所以它不会识别同一 URL 的对等编码和解码形式。
例如,对于这两个 URL:
http://foo.com/hello world/ 和 http://foo.com/hello%20world
将被视为互不相等。

也可以使用 URLEncoder 和 URLDecoder 类,但是只适用于 HTML 形式的编码,它与RFC2396 中定义的编码机制不同。

对于URL和RUI的简单说明
URI 是统一资源标识符,而 URL 是统一资源定位符。因此,笼统地说,每个 URL 都是 URI,但不一定每个 URI 都是 URL。


参考API中URI
使用URI进行解码测试
URL base = PropertiesReader.class.getResource("/");
	String filePath = base.getFile()+"../proxool.xml";

try {
				URI u = new URI(filePath);
				System.out.println(u.getPath());
				System.out.println(base.getPath());
			} catch (URISyntaxException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}

倒是可以得到正确的输出
D:/Program Files/Apache Software Foundation/Tomcat 6.0/webapps...

如果有更好方法,欢迎指出
分享到:
评论

相关推荐

    transpiling-watch:Bash 实用程序守护进程监视文件更改并对其进行转译

    在/path/to/your/code目录或其子目录中,您必须创建.watch文件,以便为此目录或其子目录中的文件定义转译规则。 没有.watch文件的目录内的文件更改或其祖先目录将被忽略。 .watch文件格式 例子

    Javascript中使用A标签获取当前目录的绝对路径方法

    一谈到路径相关的问题,大家都会往[removed]上想,确实这个对象提供了相当多的路径信息,其中常用的就包括: 1.location.href:当前页面的完整URL 2.location.pathname:当前URL中的路径名 3.location.hash:当前URL...

    dhtmlxVault多文件上传

    - **文件名转译**:上传的文件名会被转译,防止潜在的安全问题,如路径遍历攻击。 - **权限控制**:可以通过服务器端代码控制用户的上传权限,例如限制特定用户只能上传到指定目录。 5. **版本1.6**: - **改进...

    tscpaths:打字稿编译后将绝对路径替换为相对路径

    tscpaths 在编译期间,在打字稿编译(tsc)之后,将绝对路径替换为相对路径。...p-项目项目配置文件(tsconfig.json) -s --src 源代码根目录-o-出转译代码的输出目录(tsc --outDir) 您需要提供-s(--sr

    基于C++和C语言的基金参数导入文件生成器设计源码

    在本项目中,配置文件为三个.ini文件,它们可能是用来配置基金参数的具体格式、路径设置等。 文本文件(.txt)通常用于存放程序的说明文档或者日志信息,如readme.txt文件,它可能包含了关于该项目的简要说明和使用...

    DWSurvey-Vue-github官网

    index.html文件是项目的入口文件,通常包含了项目的最基本结构和链接到其他资源的路径,是浏览器解析项目时首先加载的文件。 .eslintrc.js文件是ESLint的配置文件,定义了代码质量检查的规则和插件,可以极大地提升...

    Reres js本地文件替换

    8. **配置与使用**:Reres的配置文件通常为JSON格式,允许开发者自定义监听的文件路径、更新策略等。在项目中引入Reres,可以通过JavaScript代码进行初始化和调用。 总之,Reres是开发过程中提高效率的好帮手,它...

    webpack-使用配置文件.rar

    2. **output**:输出配置,定义Webpack打包后的文件输出位置和文件名,包括路径和生成的bundle文件名。 3. **module**:模块配置,用于处理不同类型的模块,比如JavaScript、CSS等。这里可以设置loaders(加载器)...

    基于百度开源PaddleSpeech模型的一个电话录音文本转译项目

    # 获取路径下所有文件或文件夹——生成器 import os def get_file_name(dir_path:str): # 二阶文件夹数据获取 file_list = os.listdir(dir_path) for dir in file_list: file_dir_path = os.path.join(dir_...

    Node.js day-01

    在Node.js中,可以使用path模块和fs模块来处理文件路径和文件系统操作。path模块提供了处理文件路径的常用功能,如获取路径信息、路径拼接、路径转换等。fs模块则是用于文件系统操作,包括读取文件、写入文件、删除...

    直接将VBForm转DCL 程序【VB2DCL】

    作 者: 安徽省水利水电勘测设计院 水工三处 LSD ...另外:你对应的默认文件路径可以到 Support\vb2dcl_set.ini 更改 视频演示可以到我的网盘下载: http://e.ys168.com/?santalin 程序截图可以到明经论坛看 ...

    watermark-js-plus-JavaScript资源

    - babel.config.js:这是一个Babel的配置文件,用于配置转译JavaScript代码的规则,特别是将ES6+代码转译成ES5代码,以支持不支持现代JavaScript特性的浏览器。 - index.js:这通常是一个项目的主文件,可能包含了...

    Huffman 编码压缩算法

    当到达叶子节点时,记录的路径就构成了该字符的Huffman编码。对于每个字符,我们都可以用这种方式得到其唯一的编码。 5. **编码字典**:将所有字符及其对应的Huffman编码存储在一个字典中,以便解压时使用。 6. **...

    VC++读取json格式数据

    确保在编译设置中包含这些文件路径,并链接对应的库(在编译后生成)。 2. **理解JSON数据结构**:JSON数据由键值对组成,可以是对象(键值对的集合,用花括号{}包围)或数组(有序元素列表,用方括号[]包围)。键...

    NodeJS 将文件夹按照存放路径变成一个对应的JSON的方法

    在编程之前,一定要有一个信条:代码是为了减少工作量而生的,重复枯燥的工作是不能容忍的。...四级路径:a.jpg,b.jpg,c.jpg等数量不等的图片文件 思路 1.一个全局变量:数组类型obj。 2.递归遍历目录,是文

    基于Vue框架的运输管理系统前端设计源码

    JSON配置文件在前端开发中常用于配置应用的环境变量、API接口路径、国际化设置等,提供了灵活的配置选项,方便开发者快速调整应用配置。 其他相关文件,如HTML文件、图片资源和配置文件等,构成了系统的骨架和外观...

    基于Vue框架的智慧消防前端设计源码

    10. ESLint忽略文件:1个,ESLint是一个静态代码分析工具,用于识别和报告代码中的问题,忽略文件告诉ESLint忽略某些特定的文件或路径。 整个源码的设计目的是为了提高消防管理的工作效率和系统的安全性。智慧消防...

    C# winform利用gsdll32转换pdf为图片等各种类型

    - 设置参数:为转换提供输入PDF文件路径,输出图片格式(如JPEG、PNG),以及输出图片质量等相关参数。 - 运行转换:调用`gsapi_run_document`执行PDF到图片的转换。 - 清理:完成转换后,释放资源,调用`gsapi_...

    (源码)基于 webpack5 的 react 工程化多页面模板项目.zip

    5. 提供 Linux 脚本工具,便于处理项目文件路径问题。 ## 安装使用步骤 假设已下载本项目的源码文件 1. 在项目根目录初始化 npm 项目,执行命令 npm init。 2. 安装相关依赖,执行命令 npm install。

    Server对象与服务器端文件存取

    1. **URL转译**:通过Server对象的MapPath方法,可以将相对URL转换为服务器上的物理路径,这对于访问服务器上的文件非常有用。 2. **执行服务器端脚本**:Server对象的Execute方法允许在一个ASP页面中执行另一个ASP...

Global site tag (gtag.js) - Google Analytics