【发布时间】:2011-09-26 10:18:01
【问题描述】:
我有一个非常小而简单的问题,但我没有得到解决方案。 实际上,我正在使用文件选择器获取 CSV 文件路径。 我正在使用加载数据本地 infile 查询将此 csv 文件中的数据输入到数据库中。
假设我输入的文件路径是“C:\title.csv” 当我将此字符串放入查询时,您将在路径中看到 \t 组合。这个 \t 实际上是文件路径的一部分,而不是转义字符 '\t'。但是java和mysql都认为是转义字符。
然后我尝试使用以下代码行将文件路径字符串中的“\”替换为“\\”。
String filepath="C:\title.csv";
String filepath2=filepath.replace("\\","\\\\");
对文件路径仍然没有影响,它仍然认为 '\t' 作为转义字符。
所以我的问题是如何在不更改文件名的情况下解决这个问题?
如果我们有类似的路径
String filepath="C:\new folder\title.csv";
它会将 \n 和 \t 视为转义字符。 如果路径中的文件或文件夹的名称导致转义字符,如何解决此问题?
【问题讨论】:
-
请记住,如果您想使用 LOAD DATA INFILE,您要处理的文件必须在托管数据库服务器的机器上,因此您首先必须将文件上传到数据库服务器,发生这种情况后,您不应该为 Windows 路径而烦恼(除非服务器托管在 Windows 机器上)
-
@James DW @LordDoskias 朋友们好!詹姆斯我尝试了你的解决方案,但是当我放置 filepath.replace("\\","\\\"); 时它给出了编译错误; LordDoskian 我的数据库服务器和文件都在同一台机器和 Windows 操作系统上。我只想将 filepath="C:\new\title.csv" 设置为 "c:\\new\\title.csv"。因为将 '\' 替换为 '\\' 适用于普通路径行“C:\my\myfile.csv”,但不适用于上述文件路径,其中意外转义字符带有 '\' 和文件夹名称或文件名的组合。
-
您如何注意到 Java 将文件路径中的 \n 视为转义字符?
-
@michael667 我采用字符串变量中的路径,即 String filepath="C:\title.csv" 并将其打印在控制台上,然后我尝试用 filepath.replace( "\\","\\\\");并再次在控制台上打印字符串以进行两次打印,它给了我相同的输出。谢谢。
-
你能发布一段可编译的代码来重现这种行为吗?
标签: java escaping filepath backslash