2016-12-27 84 views
0

我正在从数据库获取文件路径,我想打开该文件。 I 收到的路径为 'D:\ Tasks \ Electrolux \ Asia \ XmlToDB \ I008_POK_ServiceOrder_201220162609' 但java会将':'和'\'视为特殊字符并给出错误 无效的字符常量。我的预期成果是:“d:\\任务/伊莱克斯/亚洲/ XmlToDB/I008_POK_ServiceOrder_201220162609”我用如下代替,如何将常规目录路径替换为java路径作为字符串

public static String getFilePath(String path) { 

     str_file_name = path.replace('\\', '/'); 
     str_file_name = str_file_name.replace(':/', '\\'); //getting error here 
     return str_file_name; 
    } 
+3

斜杠做工精细,甚至在Windows上:'d:/任务/伊莱克斯/亚洲/ XmlToDB/I008_POK_ServiceOrder_201220162609'。你不需要为字符串常量使用String.replace()!否则,请考虑'String.replaceAll()'替换所有斜线! – paulsm4

+0

你的问题不清楚。您的预期输出具有前向和反向。你的直接错误是'':/''是两个独立的字符,不能用单引号(它应该是'“:/”'),但是总体问题并不清楚。 –

+0

'str_file_name.replace(“://”,“\\”);'应该没问题。 – Maroun

回答

0

前要通过一个参数去getFilePath(inputPath)见测试程序修改路径。它可能有帮助。试一次

公共类的文件路径{

public static void main(String[] args) { 

    // TODO Auto-generated method stub 
    String inputPath = "D:\\Tasks\\Electrolux\\Asia\\XmlToDB\\I008_POK_ServiceOrder_201220162609"; 
    System.out.println(getFilePath(inputPath)); 

} 

public static String getFilePath(String path) { 
    path = path.replace("\\", "/"); 
    // System.out.println(path); 
    path = path.replace(":/", ":\\\\"); 
    // System.out.println(path); 
    return path; 
} 

}

0

你得到一个错误,因为':/'是字符串常量(不是一个字符串常量),但包含超过1个字符。 尝试str_file_name.replace(":/", "\\\\"); (使用双引号)

相关问题