我是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有什么问题?如何将“./”字符排除在路径之外?
非常感谢!
答案 0 :(得分:0)
首先我尝试File Path = new File(".");
,如示例中所示使用当前文件夹,我对隐藏文件夹也有同样的问题。所以我被误导了。
File Path = new File(".AAA");
对我来说很好。
感谢Klitos Kyriacou:)