【问题标题】:Java says "file does not exist" when using absolute pathJava在使用绝对路径时说“文件不存在”
【发布时间】:2018-10-30 03:11:43
【问题描述】:

我正在做一个非常简单的项目,它应该在运行时使用 Windows 视频播放器打开一个图像。但是,我遇到了一个问题。我希望它能够使用相对文件路径访问文件“snp.jpg”,这样它就可以在我自己以外的计算机上运行。但是,当我将它设置为绝对文件路径时,它会失败并告诉我“文件......不存在”。有什么想法吗?

import java.awt.Desktop;
    import java.io.File;



public class openpic {

    public static void main (String args[]) throws Exception

    {


        File f = new File ("C:\Users\charl\Desktop\Computer Science\JavaProjects\src\snp.png");
        Desktop d = Desktop.getDesktop();
        d.open(f);
        System.out.println("imageviewer open;");



    }

}

【问题讨论】:

标签: java file relative-path


【解决方案1】:

(Ops...修复答案,在我阅读了代码上方的文字之后)

相对路径将从您运行程序的目录开始。也称为当前工作目录

另外,当您使用文件时,请尝试使用 NIO API 和 Path。喜欢:

Path filePath = Paths.get("./snp.png")

使用此 API,您可以使用以下方法检查工作目录:

filePath.toAbsolutePath()  
// just print it then, or check with a debugger

另外,请注意斜线。

当使用 Windows 和这个斜线 \ 时,您需要将它们加倍:\\

其他选项是将其反转:/

【讨论】:

    【解决方案2】:

    Microsoft Windows 语法

    import java.awt.Desktop;
     import java.io.File;
    
    
    
        public class openpic {
    
            public static void main (String args[]) throws Exception
    
            {
    
                // Microsoft Windows syntax
                File f = new File ("C:\\Users\\charl\\Desktop\\Computer Science\\JavaProjects\\src\\snp.png");
                Desktop d = Desktop.getDesktop();
                d.open(f);
                System.out.println("imageviewer open;");
    
    
    
            }
    
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多