Java获取文件夹中的文件?

时间:2014-04-12 11:33:42

标签: java list file

我试图获取包含类型

的dictonary中的文件

像:

的src / mime.txt

的src / pic1.png

                    String path  = "dic images/";
                    for (int i = 0; i < listOfFiles.length; i++) {
                      if (listOfFiles[i].isFile()) {
                        uploadFile(path   + "" + listOfFiles[i].getName());

                      } 
                    }

这不起作用导致listOfFiles[i].getName()我只得到&#34; pic1&#34;你是那种类型还是?

2 个答案:

答案 0 :(得分:2)

使用getAbsolutePath代替getName

试试这个:

File folder = new File("your path");//for example D:/java
File[] listOfFiles = folder.listFiles();

for (int i = 0; i < listOfFiles.length; i++) 
    if (listOfFiles[i].isFile()) {
        System.out.println(listOfFiles[i].getAbsolutePath());
    }

如果您还需要打印子文件夹中所有文件的全名,请尝试以下方法:

public static void main(String[] args){//or whatever to call the printFiles for the first time

File folder = new File("D:/java");
printFiles(folder);
}

static void printFiles(File folder) {
    File[] listOfFiles = folder.listFiles();
    for (File f : listOfFiles) { 
        if (f.isFile()) {
            System.out.println(f.getAbsolutePath());
        }
        else
            printFiles(f);
    }
}

答案 1 :(得分:0)

使用NIO.2可以这样做:

public void findAllFilesInDirectory(Path pathToDir) throws IOException {
    Files.walkFileTree(pathToDir, new SimpleFileVisitor<Path>() {
        @Override
        public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
            if (Files.isRegularFile(file)) {
                System.out.println(file.toString());
            }
            return FileVisitResult.CONTINUE;
        }
    });
}

此打印路径指向所选目录中的所有常规文件。它还会打印子目录中的常规文件。

文档: http://docs.oracle.com/javase/tutorial/essential/io/walk.html