从可以在Linux中打开的文件路径创建文件

时间:2015-07-01 07:10:41

标签: java linux windows file file-transfer

我使用扩展TransferHandler类的类来获取文件被丢弃到gui的路径。现在我需要采用该路径并将其转换为文件对象,以便我可以使用已经编写的opener方法打开它。我尝试将路径放在文件对象中,如下所示:

final File file = new File(filePath);

它不起作用,我是否需要对文件路径做一些特殊的事情,因为我在Linux中运行应用程序?该应用程序需要在Linux和Windows中都可运行,是否有适用于这两种方法的方法?如果不是,我将如何分别为Linux和Windows做这件事?

此外,错误消息如下所示:

  

ERROR [Thread-4] 09:07:45 01/07/15:未能打开   java.io.FileNotFoundException:home / ur / Desktop / out.txt    (没有相应的文件和目录)       at java.io.FileInputStream.open(Native Method)       在java.io.FileInputStream。(FileInputStream.java:140)       在java.io.FileReader。(FileReader.java:72)       在com.ur.log.reader.FileSelectionBinder.openFile(FileSelectionBinder.java:208)       在com.ur.log.reader.FileSelectionBinder.loadFile(FileSelectionBinder.java:189)       在com.ur.log.reader.FileSelectionBinder $ DragAndDropDataTransfer $ 1.run(FileSelectionBinder.java:125)

3 个答案:

答案 0 :(得分:0)

Linux没有特定的内容。

  

Java是平台无关的语言,没有特殊情况   必需的。

编辑:我的错误,我完全误解了它。你检查过文件权限了吗?谁是文件的所有者等?

请执行/检查以下内容:

  1. 检查文件访问权限
  2. 始终使用绝对路径(前面带'/')
  3. 对于主目录,请尝试使用{ - 1}} -
  4. System.getProperty("user.home")
    1. 通过File userHomeDir = new File(System.getProperty("user.home")); File fileToRead = new File(userHomeDir , "Desktop/out.txt");
    2. 处理文件访问权限

      以上应该可以给你一个明确的解决方案。否则,你可能会看到一些东西,我不确定。

答案 1 :(得分:0)

  1. 检查此路径filePath

  2. 上已存在的文件
  3. /home/ur/Desktop/out.txt应该类似于Linux中的路径,如果您的路径是绝对路径,则从/开始。

  4. 对于Java,每个平台都是一样的,您不必担心Linux / Windows(除了提供文件路径)。所有方法都可以在所有平台上正常工作。

  5. 您可以使用file.exists()来提供布尔返回值以满足您的条件。 true如果文件存在&否则false

答案 2 :(得分:0)

所以我觉得很傻。事实证明,每次导入文件时,我的文件路径末尾只有一个空格。我曾尝试过一个修饰语句,但后来我是一个愚蠢的头,并没有设置filePath = file.Path.trim()。对不起麻烦的家伙们!