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



我正在使用一个扩展TransferHandler类的类来获取要放入gui中的文件的路径。现在我需要获取该路径并将其转换为一个文件对象,这样我就可以使用已经编写的opener方法打开它。我试着把路径放在一个像这样的文件对象中:

final File file = new File(filePath);

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

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

错误[Thread-4]09:07:45 01/07/15:无法打开java.io.FileNotFoundException:home/ur/Desktop/out.txt(没有这样的文件或目录)位于java.io.FileInputStream.open(本机方法)位于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)

  1. 检查文件是否已存在于此路径filePath

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

  3. 对于Java,每个平台都是一样的,您不必担心Linux/Windows(除了提供文件路径)。不过,所有方法在所有平台上都应该运行良好。

  4. 您可以使用file.exists(),它将提供布尔返回值,以便满足您的条件。CCD_ 5如果文件存在&否则为CCD_ 6。

Linux没有任何特定功能。

Java是独立于平台的语言,没有特殊情况必需。

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

请检查以下内容:

  1. 检查文件访问权限
  2. 始终使用绝对路径(前面有"/")
  3. 对于主目录,请尝试使用System.getProperty("user.home"),如-

File userHomeDir = new File(System.getProperty("user.home")); 
File fileToRead = new File(userHomeDir , "Desktop/out.txt");
  1. 通过if(fileToRead.exists())处理文件访问

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

所以我觉得自己很傻。事实证明,每次导入文件时,我的文件路径末尾都只有一个空格。我曾尝试放入一个trim语句,但后来我是个愚蠢的傻瓜,没有设置filePath=file。Path.trim()。很抱歉给你们带来麻烦!

相关内容

  • 没有找到相关文章

最新更新