Java获取文件夹中的文件



im正在尝试获取dictionary中的文件,其中包括类型

类似:

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(),我只得到了带有类型或?的"pic1"?

使用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);
    }
}

使用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

相关内容

  • 没有找到相关文章

最新更新