我正在使用org.eclipse.swt.widgets.FileDialog在eclipse插件中获取文件路径,并将路径保存在XML文件中。
在web.xml中,路径存储如下(我不能将反斜杠改为正斜杠或转义反斜杠,因为值来自SWT FileDialog)
<init-param>
<param-name>filePath</param-name>
<param-value>c:\new\demo\next\version.txt</param-value>
</init-param>在我的过滤器中,我在init()方法中有以下代码,但由于特殊字符无法获取File引用
String filePath = filterConfig.getInitParameter("filePath");
// Tried filePath.replace('\\','/') --> Didnot work since \n is a single character
File f = new File(path)发布于 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解析器也是如此。您需要预先获得正确的文件格式。
发布于 2012-06-01 02:46:30
I无法获取实际路径,因为\n被视为新行。
这表明,无论读取文件的是什么,都假定正在进行转义,但事实并非如此。
不幸的是,您还没有告诉我们使用什么代码来写入数据,或者使用哪些代码来读取数据。在这两条路径中它都在你的控制之下吗?
基本上,您需要以与取消转义相同的方式进行转义-因此,您可以在写入数据时将c:\new\demo\next\version.txt转义为c:\\new\\demo\\next\\version.txt,也可以在读取数据时删除试图取消转义的代码。
请注意,如果你真的尝试过:
string.replace('\\', '/');那么这肯定不会有任何帮助-因为您忽略了返回值。如果你试过
string = string.replace('\\', '/');然后,它应该执行相关的替换,但您没有说您试图在哪里做,或者它以什么方式不起作用。
在这里,我实际上会把正斜杠和反斜杠看作是转移注意力的问题:从根本上说,你需要以与不转义相同的方式进行转义。将反斜杠替换为正斜杠可能会对文件名有所帮助,但如果您不能只执行这种替换,那么您只会在其他地方遇到问题。
https://stackoverflow.com/questions/10839356
复制相似问题