首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >java.io.File的路径问题

java.io.File的路径问题
EN

Stack Overflow用户
提问于 2012-06-01 02:41:14
回答 2查看 370关注 0票数 0

我正在使用org.eclipse.swt.widgets.FileDialog在eclipse插件中获取文件路径,并将路径保存在XML文件中。

在web.xml中,路径存储如下(我不能将反斜杠改为正斜杠或转义反斜杠,因为值来自SWT FileDialog)

代码语言:javascript
复制
<init-param>
  <param-name>filePath</param-name>
  <param-value>c:\new\demo\next\version.txt</param-value>
</init-param>

在我的过滤器中,我在init()方法中有以下代码,但由于特殊字符无法获取File引用

代码语言:javascript
复制
String filePath = filterConfig.getInitParameter("filePath");
// Tried filePath.replace('\\','/') --> Didnot work since \n is a single character
File f = new File(path)
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-06-01 12:47:58

我正在使用org.eclipse.swt.widgets.FileDialog在eclipse插件中获取文件路径,并将路径保存在

文件中。

在web.xml中,路径存储如下(我不能将反斜杠改为正斜杠或转义反斜杠,因为值来自SWT FileDialog)

SWT文件对话框不写入web.xml文件。您正在这样做,所以您可以修复反斜杠。将它们更改为正斜杠。

我在init()方法中有以下代码,但由于特殊字符无效而无法获取文件引用,因为\n被认为是您的注释中的单个字符

这意味着web.xml文件中的数据是错误的。你在代码中所做的任何事情都不能解决这个问题。这不是一个编码问题。在Java中不需要处理反斜杠。编译器已经这样做了,在本例中,web-app容器中的XML解析器也是如此。您需要预先获得正确的文件格式。

票数 0
EN

Stack Overflow用户

发布于 2012-06-01 02:46:30

I无法获取实际路径,因为\n被视为新行。

这表明,无论读取文件的是什么,都假定正在进行转义,但事实并非如此。

不幸的是,您还没有告诉我们使用什么代码来写入数据,或者使用哪些代码来读取数据。在这两条路径中它都在你的控制之下吗?

基本上,您需要以与取消转义相同的方式进行转义-因此,您可以在写入数据时将c:\new\demo\next\version.txt转义为c:\\new\\demo\\next\\version.txt,也可以在读取数据时删除试图取消转义的代码。

请注意,如果你真的尝试过:

代码语言:javascript
复制
string.replace('\\', '/');

那么这肯定不会有任何帮助-因为您忽略了返回值。如果你试过

代码语言:javascript
复制
string = string.replace('\\', '/');

然后,它应该执行相关的替换,但您没有说您试图在哪里做,或者它以什么方式不起作用。

在这里,我实际上会把正斜杠和反斜杠看作是转移注意力的问题:从根本上说,你需要以与不转义相同的方式进行转义。将反斜杠替换为正斜杠可能会对文件名有所帮助,但如果您不能只执行这种替换,那么您只会在其他地方遇到问题。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10839356

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档