获取Java中隐藏文件夹的绝对路径

时间:2017-02-28 12:13:05

标签: java file directory hidden

我是java的新手,是的,我尝试在这里搜索并使用谷歌。我害怕用错误的关键词:(对不起!

我想在我的Mac上获取没有文件名的隐藏目录的路径。最后它也应该在Linux系统上运行。我的代码适用于非隐藏的导演。

我尝试了以下代码:

package test;

import java.io.File; 
import java.io.IOException;
import java.security.NoSuchAlgorithmException;

public class test {
 public static void main(String[] args) throws Exception {
    try {
        File Path = new File("./.AAA");
        File[] files = Path.listFiles();

        for (File file : files) {
            if (file.isDirectory()) {
                // crawlPath(file);
            } else {
                String absolutePath = file.getAbsolutePath();
                String filePath = absolutePath.substring(0,absolutePath.lastIndexOf(File.separator)); // )-1);

                System.out.println("*File path:\t\t" + filePath);
                System.out.println("*getParentFile\t\tfile:" + file.getParentFile());
                System.out.println("*getParent()\t\tfile:" + file.getParent());
                System.out.println("*getAbsolutePath()\tfile:" + file.getAbsolutePath());
                System.out.println("*getAbsoluteFile()\tfile:" + file.getAbsoluteFile());
                System.out.println("*getPath\t\tfile:" + file.getPath());
                System.out.println("*getName\t\tfile:" + file.getName());
                System.out.println("*getCannonicalPath\tfile:" + file.getCanonicalPath());
                System.out.println("*getCannonicalFile\tfile:" + file.getCanonicalFile());
            }
        }
    } catch (IOException e) {
        System.err.println("xx: " + e.getClass().getName() + ": " + e.getMessage());
        e.printStackTrace();
    }
 }
}

我从上面的代码中得到了什么:

*File path:     /Users/chris/Desktop/Projekte/Projekte.myIT/Projekt.Datenwust/test/./.AAA
*getParentFile      file:./.AAA
*getParent()        file:./.AAA
*getAbsolutePath()  file:/Users/chris/Desktop/Projekte/Projekte.myIT/Projekt.Datenwust/test/./.AAA/test
*getAbsoluteFile()  file:/Users/chris/Desktop/Projekte/Projekte.myIT/Projekt.Datenwust/test/./.AAA/test
*getPath        file:./.AAA/test
*getName        file:test
*getCannonicalPath  file:/Users/chris/Desktop/Projekte/Projekte.myIT/Projekt.Datenwust/test/.AAA/test
*getCannonicalFile  file:/Users/chris/Desktop/Projekte/Projekte.myIT/Projekt.Datenwust/test/.AAA/test

在第一行我希望*文件路径:/Users/chris/Desktop/Projekte/Projekte.myIT/Projekt.Datenwust/test/.AAA而不是...测试/./。最后的AAA。

在路径中带有文件名的最后一行我得到了预期的... / test / .AAA / test

我现在的问题是:隐藏的.Folders有什么问题?如何将“./”字符排除在路径之外?

非常感谢!

1 个答案:

答案 0 :(得分:0)

首先我尝试File Path = new File(".");,如示例中所示使用当前文件夹,我对隐藏文件夹也有同样的问题。所以我被误导了。

File Path = new File(".AAA");对我来说很好。

感谢Klitos Kyriacou:)