Java File.isFile()返回false,但它是一个文件

时间:2014-10-22 14:27:35

标签: java file nio

文件不是只读的,您可以从下面的屏幕截图中看到。但由于某些原因,file.isFile()被返回为false。以下是我的代码:

TreePath selectedTreePath = tree.getPathForLocation(me.getX(), me.getY());
DefaultMutableTreeNode node = (DefaultMutableTreeNode) (selectedTreePath.getLastPathComponent());
File files = new File(node.getUserObject().toString());
File file = new File(node.getUserObject().toString());
Path path2 = Paths.get(node.getUserObject().toString());
System.out.println("path2.toAbsolutePath(): " + path2.toAbsolutePath());
System.out.println("path2.toFile().isFile(): " + path2.toFile().isFile());

我的工作是什么?

编辑:所以我认为前两行代码是错的? TreePath和DefaultMutableTreeNode。我错误地得到了文件的路径? enter image description here enter image description here

1 个答案:

答案 0 :(得分:-2)

找出问题所在。

我正在做一些有趣的事情
DefaultMutableTreeNode node = (DefaultMutableTreeNode) (selectedTreePath.getLastPathComponent());

使用以下代码:

public static String createFilePath(TreePath treePath) {
    StringBuilder sb = new StringBuilder();
    Object[] nodes = treePath.getPath();
    for(int i=0;i<nodes.length;i++) {
        sb.append(File.separatorChar).append(nodes[i].toString()); 
    } 
    return sb.toString();
}

此处提供:https://stackoverflow.com/a/20364909/1275777

哦,如果你们解释为什么要把它标记下来,那就太好了。