第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何迭代Java目錄中的文件?

如何迭代Java目錄中的文件?

藍(lán)山帝景 2019-07-03 16:11:00
如何迭代Java目錄中的文件?我需要一個(gè)目錄中所有文件的列表,包括所有子目錄中的文件。用Java完成目錄迭代的標(biāo)準(zhǔn)方法是什么?
查看完整描述

3 回答

?
胡子哥哥

TA貢獻(xiàn)1825條經(jīng)驗(yàn) 獲得超6個(gè)贊

你可以用File#isDirectory()若要測試給定文件(路徑)是否為目錄,請執(zhí)行以下操作。如果這是true,然后您只需再次調(diào)用同一個(gè)方法,并使用它的File#listFiles()結(jié)果。這叫做遞歸.

這是一個(gè)基本的開球例子。

public static void main(String... args) {
    File[] files = new File("C:/").listFiles();
    showFiles(files);}public static void showFiles(File[] files) {
    for (File file : files) {
        if (file.isDirectory()) {
            System.out.println("Directory: " + file.getName());
            showFiles(file.listFiles()); // Calls same method again.
        } else {
            System.out.println("File: " + file.getName());
        }
    }}

請注意,這對StackOverflowError當(dāng)樹的深度超過JVM的堆棧所能容納的深度時(shí)。您可能需要使用迭代方法或尾遞歸相反,這是另一個(gè)主題;)


查看完整回答
反對 回復(fù) 2019-07-03
?
開心每一天1111

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超13個(gè)贊

如果您使用的是Java1.7,則可以使用java.nio.file.Files.walkFileTree(...).

例如:

public class WalkFileTreeExample {

  public static void main(String[] args) {
    Path p = Paths.get("/usr");
    FileVisitor<Path> fv = new SimpleFileVisitor<Path>() {
      @Override
      public FileVisitResult visitFile(Path file, BasicFileAttributes attrs)
          throws IOException {
        System.out.println(file);
        return FileVisitResult.CONTINUE;
      }
    };

    try {
      Files.walkFileTree(p, fv);
    } catch (IOException e) {
      e.printStackTrace();
    }
  }}

如果您使用的是Java 8,則可以使用流接口java.nio.file.Files.walk(...):

public class WalkFileTreeExample {

  public static void main(String[] args) {
    try (Stream<Path> paths = Files.walk(Paths.get("/usr"))) {
      paths.forEach(System.out::println);
    } catch (IOException e) {
      e.printStackTrace();
    }
  }}


查看完整回答
反對 回復(fù) 2019-07-03
  • 3 回答
  • 0 關(guān)注
  • 679 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)