【问题标题】:Changing the directory path's forward slash to backslash将目录路径的正斜杠更改为反斜杠
【发布时间】:2013-05-23 05:31:32
【问题描述】:

我正在使用 JFile 选择器,并尝试导入 pdf 文件,但是;

if (option == JFileChooser.APPROVE_OPTION) {
    String fs = File.separator;
     String filelist = " "; 
     filelist = " "+chooser.getSelectedFile();
     filelist = filelist.replace("\\","/");
     File sf = new File(filelist);



 statusbar.setText("You chose " + filelist);
 System.out.println(filelist);

 PDDocument doc = null;
  try 
  {
         filelist = filelist.replace("\\","/");

    doc = PDDocument.load(filelist);

System.out.println(文件列表);用正斜杠完美地打印出期望的结果;

C:/Users/raz/Documents/2pg.pdf

但是文档给出了反斜杠错误; java.io.FileNotFoundException:
C:\Users\raz\Documents\2pg.pdf(文件名、目录名或卷标语法不正确)

【问题讨论】:

  • 为什么要附加空格:filelist = " "+chooser.getSelectedFile(); ?
  • 因为,filelist是一个字符串
  • 如果它已经返回了一个字符串,那么不要添加空格!!! Else 你有没有听说过 String.valueOf,或者 object.toString() 尝试使用它。

标签: java file-io


【解决方案1】:

导致问题的不是路径分隔符,而是名称前面的空格:

filelist = " "+chooser.getSelectedFile();

应该是:

filelist = chooser.getSelectedFile();

【讨论】:

  • 如果没有它,文件列表会报错,因为它是一个字符串,问题出在 try { } 内部,它不起作用。我使用与字符串相同的目录。
  • 它似乎显示得很好,因为你在视觉上没有注意到空格,但是计算机注意到了空格,这相当于无效的语法。 getSelectedFile() 返回一个字符串,不需要" "。试试我的建议看看。
  • 完美,我明白你的意思,但因为 filelist 是一个字符串,我宁愿这样做; ""+选择器.getSelectedFile();谢谢!
猜你喜欢
  • 1970-01-01
  • 2020-11-10
  • 1970-01-01
  • 2018-08-30
  • 1970-01-01
  • 2013-06-09
  • 1970-01-01
  • 2013-07-23
  • 2012-08-30
相关资源
最近更新 更多