我使用org.eclipse.swt.widgets.FileDialog
在eclipse插件中获取文件路径并将路径保存在XML文件中。
在web.xml中,路径存储如下(我不能将backsladh更改为forwardslash或转义反斜杠,因为该值来自SWT FileDialog)
<init-param>
<param-name>filePath</param-name>
<param-value>c:\new\demo\next\version.txt</param-value>
</init-param>
在我的过滤器中,我在init()方法中有以下代码但由于特殊字符而无法获取文件引用
String filePath = filterConfig.getInitParameter("filePath");
// Tried filePath.replace('\\','/') --> Didnot work since \n is a single character
File f = new File(path)
答案 0 :(得分:2)
我无法获得实际路径,因为\ n被视为新行。
这表明无论阅读文件是什么,都假设是逃避,而事实并非如此。
不幸的是,您还没有告诉我们用什么代码来写数据或用于读取数据的代码。在任何一条道路上都在你的控制之下吗?
基本上你需要以与unescape相同的方式进行转义 - 所以你可以在编写数据时将c:\new\demo\next\version.txt
转义为c:\\new\\demo\\next\\version.txt
,或者你可以删除尝试的代码你正在阅读数据时发现它。
请注意,如果字面上尝试:
string.replace('\\', '/');
然后这肯定无济于事 - 因为你忽略了返回值。如果你试过
string = string.replace('\\', '/');
那么应该已经执行了相关的替换,但是你没有说你在哪里试图这样做,或者以方式它不起作用。
我实际上会将前锋与反斜杠视为红鲱鱼:从根本上说,你需要以与你不相同的方式逃避。用正斜杠替换反斜杠可能对文件名有帮助,但是在无法执行替换的情况下,您只会在其他地方遇到问题。
答案 1 :(得分:0)
我正在使用eclipse插件获取文件路径 org.eclipse.swt.widgets.FileDialog并将路径保存在XML文件中。
在web.xml中,路径存储如下(我无法将backsladh更改为 转发或转义反斜杠,因为该值来自SWT 的FileDialog)
SWT文件对话框不会写入web.xml文件。你这样做,所以你可以修复反斜杠。将它们更改为正斜杠。
我在init()方法中有以下代码但是无法获取File 由于特殊字符引用 这是行不通的,因为\ n被认为是[来自你的一条评论]的单个字符
这意味着web.xml文件中的数据错误。您在代码中无法做到的任何事情都可以解决这个问题。这不是编码问题。您不需要在Java中处理反斜杠。编译器已经这样做了,因此在这种情况下,在Web应用程序容器中执行了XML解析器。您需要预先获得正确的文件格式。