home > 基礎編 >

ForNext

Shut the fuck up and write some code

指定フォルダ以下のフォルダ/ファイルを列挙する

VBScript

JScript

更新日 : 2008.08.02
■ 指定フォルダ以下のフォルダ/ファイルを列挙
var fs     = WScript.CreateObject("Scripting.FileSystemObject");
var folder = fs.GetFolder(WScript.Arguments(0));

var files   = folder.Files;
var enmFile = new Enumerator(files)
for (; !enmFile.atEnd(); enmFile.moveNext())
{
        WScript.Echo(enmFile.item().Path);
}
delete enmFile;

var subFolders = folder.SubFolders;
var enmFolder  = new Enumerator(subFolders)
for (; !enmFolder.atEnd(); enmFolder.moveNext())
{
        WScript.Echo(enmFolder.item().Path);
}
delete enmFolder;
S:\>cscript s:\lesson001.js t:\js //nologo
T:\js\chapter001
T:\js\chapter002
T:\js\chapter003
T:\js\chapter004
T:\js\chapter005
■ 再帰処理用に、関数を作成
var fs = WScript.CreateObject("Scripting.FileSystemObject");
putsDis(fs, WScript.Arguments(0));

function putsDis(fs, path)
{
    var folder = fs.GetFolder(path);

    var files   = folder.Files;
    var enmFile = new Enumerator(files)
    for (; !enmFile.atEnd(); enmFile.moveNext())
    {
        WScript.Echo(enmFile.item().Path);
    }
    delete enmFile;

    var subFolders = folder.SubFolders;
    var enmFolder  = new Enumerator(subFolders)
    for (; !enmFolder.atEnd(); enmFolder.moveNext())
    {
        WScript.Echo(enmFolder.item().Path);
    }
    delete enmFolder;
}
S:\>cscript s:\lesson002.js t:\js //nologo
T:\js\chapter001
T:\js\chapter002
T:\js\chapter003
T:\js\chapter004
T:\js\chapter005
■ 再帰処理で サブフォルダのファイルを列挙
var fs = WScript.CreateObject("Scripting.FileSystemObject");
putsDis(fs, WScript.Arguments(0));

function putsDis(fs, path)
{
    var folder = fs.GetFolder(path);

    var files   = folder.Files;
    var enmFile = new Enumerator(files)
    for (; !enmFile.atEnd(); enmFile.moveNext())
    {
        WScript.Echo(enmFile.item().Path);
    }
    delete enmFile;

    var subFolders = folder.SubFolders;
    var enmFolder  = new Enumerator(subFolders)
    for (; !enmFolder.atEnd(); enmFolder.moveNext())
    {
        putsDis(fs, enmFolder.item().Path);
    }
    delete enmFolder;
}
S:\>cscript s:\lesson003.js t:\js //nologo
T:\js\chapter001\jscript.bat
T:\js\chapter001\lesson001.js
T:\js\chapter001\lesson002.js
T:\js\chapter001\lesson003.js
T:\js\chapter001\lesson004.js
T:\js\chapter001\lesson005.js
T:\js\chapter001\lesson011.js
T:\js\chapter001\test.txt
T:\js\chapter002\jscript.bat
T:\js\chapter002\lesson001.js
T:\js\chapter002\lesson002.js
T:\js\chapter002\lesson003.js
T:\js\chapter002\lesson004.js
T:\js\chapter002\lesson005.js
T:\js\chapter002\lesson006.js
T:\js\chapter003\jscript.bat
T:\js\chapter003\lesson001.js
T:\js\chapter003\lesson002.js
T:\js\chapter003\lesson003.js
T:\js\chapter003\lesson004.js
T:\js\chapter003\lesson005.js
T:\js\chapter003\lesson006.js
T:\js\chapter004\jscript.bat
T:\js\chapter004\lesson001.js
T:\js\chapter004\lesson002.js
T:\js\chapter004\lesson003.js
T:\js\chapter004\lesson004.js
T:\js\chapter004\lesson006.js
T:\js\chapter004\lesson007.js
T:\js\chapter004\lesson008.js
T:\js\chapter004\lesson009.js
T:\js\chapter004\lesson010.js
T:\js\chapter004\lesson011.js
T:\js\chapter005\jscript.bat
T:\js\chapter005\lesson001.js
T:\js\chapter005\lesson002.js
T:\js\chapter005\lesson003.js

Perl

更新日 : 2008.07.30
■ 指定フォルダ以下のフォルダ/ファイルを列挙
$dir = $ARGV[0];
opendir HANDLE, $dir;
@fileList = readdir HANDLE;

foreach $file (@fileList)
{
    print "$file\n";
}

closedir HANDLE, $dir;
S:\>perl s:\lesson001.pl t:\perl
.
..
chapter001
chapter002
chapter003
chapter004
chapter005
■ 再帰処理用に、関数を作成
putsDir($ARGV[0]);

sub putsDir
{
    my($dir) = @_;
    opendir HANDLE, $dir;
    my @fileList = readdir HANDLE;

    foreach $file (@fileList)
    {
        print "$file\n";
    }

    closedir HANDLE, $dir;
}
S:\>perl s:\lesson002.pl t:\perl
.
..
chapter001
chapter002
chapter003
chapter004
chapter005
■ 再帰処理で サブフォルダのファイルを列挙
putsDir($ARGV[0]);

sub putsDir
{
    my($path) = @_;
    if (-d $path)
    {
        opendir HANDLE, $path;
        my @fileList = readdir HANDLE;

        foreach $file (@fileList)
        {
            next if ($file eq ".");  # 自分
            next if ($file eq ".."); # 親

            putsDir("$path\\$file");
        }

        closedir HANDLE, $path;
    }
    else
    {
        print "$path\n";
    }
}
S:\>perl s:\lesson003.pl t:\perl
t:\perl\chapter001\lesson001.pl
t:\perl\chapter001\lesson002.pl
t:\perl\chapter001\lesson003.pl
t:\perl\chapter001\lesson004.pl
t:\perl\chapter001\lesson011.pl
t:\perl\chapter001\perl.bat
t:\perl\chapter002\lesson001.pl
t:\perl\chapter002\lesson002.pl
t:\perl\chapter002\lesson003.pl
t:\perl\chapter002\lesson004.pl
t:\perl\chapter002\lesson005.pl
t:\perl\chapter002\perl.bat
t:\perl\chapter003\lesson001.pl
t:\perl\chapter003\lesson002.pl
t:\perl\chapter003\lesson003.pl
t:\perl\chapter003\lesson004.pl
t:\perl\chapter003\lesson005.pl
t:\perl\chapter003\lesson006.pl
t:\perl\chapter003\perl.bat
t:\perl\chapter003\test.txt
t:\perl\chapter004\lesson001.pl
t:\perl\chapter004\lesson002.pl
t:\perl\chapter004\lesson004.pl
t:\perl\chapter004\lesson006.pl
t:\perl\chapter004\lesson007.pl
t:\perl\chapter004\lesson008.pl
t:\perl\chapter004\lesson009.pl
t:\perl\chapter004\lesson010.pl
t:\perl\chapter004\lesson011.pl
t:\perl\chapter004\perl.bat
t:\perl\chapter005\lesson001.pl
t:\perl\chapter005\lesson002.pl
t:\perl\chapter005\lesson003.pl
t:\perl\chapter005\perl.bat

PHP

更新日 : 2008.08.01
■ 指定フォルダ以下のフォルダ/ファイルを列挙
<?php
$dir = $argv[1];
$dh  = opendir($dir);

while ($file = readdir($dh))
{
    print "$file\n";
}

closedir($dh);
?>
S:\>php s:\lesson001.php t:\php
.
..
chapter001
chapter002
chapter003
chapter004
chapter005
■ 再帰処理用に、関数を作成
<?php
putsDir($argv[1]);

function putsDir($dir)
{
    $dh  = opendir($dir);

    while ($file = readdir($dh))
    {
        print "$file\n";
    }

    closedir($dh);
}
?>
S:\>php s:\lesson002.php t:\php
.
..
chapter001
chapter002
chapter003
chapter004
chapter005
■ 再帰処理で サブフォルダのファイルを列挙
<?php
putsDir($argv[1]);

function putsDir($dir)
{
    if (is_dir($dir))
    {
        $dh  = opendir($dir);

        while ($file = readdir($dh))
        {
            if ($file == ".")  continue;  # 自分
            if ($file == "..") continue;  # 親

            putsDir("$dir\\$file");
        }

        closedir($dh);
    }
    else
    {
        print "$dir\n";
    }
}
?>
S:\>php s:\lesson003.php t:\php
t:\php\chapter001\lesson001.php
t:\php\chapter001\lesson002.php
t:\php\chapter001\lesson003.php
t:\php\chapter001\lesson004.php
t:\php\chapter001\lesson005.php
t:\php\chapter001\lesson006.php
t:\php\chapter001\lesson007.php
t:\php\chapter001\lesson008.php
t:\php\chapter001\lesson009.php
t:\php\chapter001\lesson011.php
t:\php\chapter001\php.bat
t:\php\chapter001\test.txt
t:\php\chapter002\lesson001.php
t:\php\chapter002\lesson002.php
t:\php\chapter002\lesson003.php
t:\php\chapter002\lesson004.php
t:\php\chapter002\lesson005.php
t:\php\chapter002\lesson006.php
t:\php\chapter002\php.bat
t:\php\chapter003\lesson001.php
t:\php\chapter003\lesson002.php
t:\php\chapter003\lesson003.php
t:\php\chapter003\lesson004.php
t:\php\chapter003\lesson005.php
t:\php\chapter003\lesson006.php
t:\php\chapter003\lesson007.php
t:\php\chapter003\lesson011.php
t:\php\chapter003\php.bat
t:\php\chapter004\lesson001.php
t:\php\chapter004\lesson003.php
t:\php\chapter004\lesson004.php
t:\php\chapter004\lesson005.php
t:\php\chapter004\lesson006.php
t:\php\chapter004\lesson007.php
t:\php\chapter004\lesson008.php
t:\php\chapter004\lesson009.php
t:\php\chapter004\lesson010.php
t:\php\chapter004\lesson011.php
t:\php\chapter004\php.bat
t:\php\chapter005\lesson001.php
t:\php\chapter005\lesson002.php
t:\php\chapter005\lesson003.php
t:\php\chapter005\php.bat

Python



Ruby

更新日 : 2008.07.30
■ 指定フォルダ以下のフォルダ/ファイルを列挙
Dir.open(ARGV[0]) do |dir|
    dir.each do |name|
        puts name
    end
end
S:\>ruby s:\lesson001.rb t:\ruby
.
..
chapter001
chapter002
chapter003
chapter004
chapter005
■ 再帰処理用に、関数を作成
def putsDir(path)
    Dir.open(path) do |dir|
        dir.each do |name|
            puts name
        end
    end
end

putsDir(ARGV[0])
S:\>ruby s:\lesson002.rb t:\ruby
.
..
chapter001
chapter002
chapter003
chapter004
chapter005
■ 再帰処理で サブフォルダのファイルを列挙
def putsDir(path)
    if FileTest.directory?(path)
        Dir.open(path) do |dir|
            dir.each do |name|
                next if name == "."  # 自分
                next if name == ".." # 親

                putsDir path + "/" + name
            end
        end
    else
        puts path
    end
end

putsDir(ARGV[0])
S:\>ruby s:\lesson003.rb t:\ruby
t:\ruby/chapter001/lesson001.rb
t:\ruby/chapter001/lesson002.rb
t:\ruby/chapter001/lesson003.rb
t:\ruby/chapter001/lesson004.rb
t:\ruby/chapter001/lesson005.rb
t:\ruby/chapter001/lesson006.rb
t:\ruby/chapter001/lesson007.rb
t:\ruby/chapter001/lesson008.rb
t:\ruby/chapter001/lesson009.rb
t:\ruby/chapter001/lesson010.rb
t:\ruby/chapter001/lesson011.rb
t:\ruby/chapter001/ruby.bat
t:\ruby/chapter001/test.txt
t:\ruby/chapter002/lesson001.rb
t:\ruby/chapter002/lesson002.rb
t:\ruby/chapter002/lesson003.rb
t:\ruby/chapter002/lesson004.rb
t:\ruby/chapter002/lesson005.rb
t:\ruby/chapter002/ruby.bat
t:\ruby/chapter003/lesson001.rb
t:\ruby/chapter003/lesson002.rb
t:\ruby/chapter003/lesson003.rb
t:\ruby/chapter003/lesson004.rb
t:\ruby/chapter003/lesson005.rb
t:\ruby/chapter003/lesson006.rb
t:\ruby/chapter003/ruby.bat
t:\ruby/chapter004/lesson001.rb
t:\ruby/chapter004/lesson004.rb
t:\ruby/chapter004/lesson006.rb
t:\ruby/chapter004/lesson007.rb
t:\ruby/chapter004/lesson008.rb
t:\ruby/chapter004/lesson009.rb
t:\ruby/chapter004/lesson010.rb
t:\ruby/chapter004/lesson011.rb
t:\ruby/chapter004/ruby.bat
t:\ruby/chapter004/test.txt
t:\ruby/chapter005/lesson001.rb
t:\ruby/chapter005/lesson002.rb
t:\ruby/chapter005/lesson003.rb
t:\ruby/chapter005/ruby.bat

PowerShell

Scala

更新日 : 2012.05.14
■ 指定フォルダ以下のフォルダ/ファイルを列挙
new java.io.File("u:\\test").listFiles.foreach(println)
scala> new java.io.File("u:\\test").listFiles.foreach(println)
u:\test\01 フォルダ
u:\test\02 ファイル.txt
T:\>dir u:\test /b/on
u:\test\01 フォルダ
u:\test\02 ファイル.txt
for (path <- new java.io.File("u:\\test").listFiles) println(path.getName)
scala> for (path <- new java.io.File("u:\\test").listFiles) println(path.getName)
01 フォルダ
02 ファイル.txt
new java.io.File("u:\\test").listFiles.map(println)
scala> new java.io.File("u:\\test").listFiles.map(println)
u:\test\01 フォルダ
u:\test\02 ファイル.txt
res17: Array[Unit] = Array((), ())
■ サブフォルダ以下の ファイルを列挙
def getAllFiles(file: java.io.File): Unit = {
    if (file.isDirectory)
        for (path <- file.listFiles)
            getAllFiles(path)
    else
        println(file)
}
getAllFiles(new java.io.File("u:\\test"))
scala> def getAllFiles(file: java.io.File): Unit = {
     |     if (file.isDirectory)
     |         for (path <- file.listFiles)
     |             getAllFiles(path)
     |     else
     |         println(file)
     | }
getAllFiles: (file: java.io.File)Unit

scala> getAllFiles(new java.io.File("u:\\test"))
u:\test\01 フォルダ\01 フォルダ\01 ファイル.txt
u:\test\01 フォルダ\02 ファイル.txt
u:\test\02 ファイル.txt
T:\>dir u:\test /b/on/s/a-d
u:\test\02 ファイル.txt
u:\test\01 フォルダ\02 ファイル.txt
u:\test\01 フォルダ\01 フォルダ\01 ファイル.txt

■ List, Array, Seq について
Array, Seq は、:: が使えない?

scala> val f = new java.io.File("u:\\test")
f: java.io.File = u:\test
scala> var fileList = new java.io.File("u:\\test").listFiles.toList
fileList: List[java.io.File] = List(u:\test\01 フォルダ, u:\test\02 ファイル.txt)

scala> fileList.map(println)
u:\test\01 フォルダ
u:\test\02 ファイル.txt
res2: List[Unit] = List((), ())

scala> f::fileList
res4: List[java.io.File] = List(u:\test, u:\test\01 フォルダ, u:\test\02 ファイル.txt)

scala> fileList:+f
res6: List[java.io.File] = List(u:\test\01 フォルダ, u:\test\02 ファイル.txt, u:\test)

scala> f+:fileList
res8: List[java.io.File] = List(u:\test, u:\test\01 フォルダ, u:\test\02 ファイル.txt)

scala> var fileSeq = new java.io.File("u:\\test").listFiles.toSeq
fileSeq: Seq[java.io.File] = WrappedArray(u:\test\01 フォルダ, u:\test\02 ファイル.txt)

scala> fileSeq.map(println)
u:\test\01 フォルダ
u:\test\02 ファイル.txt
res0: Seq[Unit] = ArrayBuffer((), ())

scala> f::fileSeq
<console>:10: error: value :: is not a member of Seq[java.io.File]
              f::fileSeq
               ^
scala> var fileArray = new java.io.File("u:\\test").listFiles
fileArray: Array[java.io.File] = Array(u:\test\01 フォルダ, u:\test\02 ファイル.txt)

scala> fileArray.map(println)
u:\test\01 フォルダ
u:\test\02 ファイル.txt
res1: Array[Unit] = Array((), ())

scala> f::fileArray
<console>:10: error: value :: is not a member of Array[java.io.File]
              f::fileArray
               ^
■ サブフォルダ以下の ファイルを列挙 (ちょいと Scala っぽく)
def getAllFiles(file: java.io.File): Seq[java.io.File] = {
    if (file.isDirectory)
        file.listFiles.toSeq.flatMap(getAllFiles)
    else
        Seq(file)
}

getAllFiles(new java.io.File("u:\\test")).map(println)
scala> def getAllFiles(file: java.io.File): Seq[java.io.File] = {
     |     if (file.isDirectory)
     |         file.listFiles.toSeq.flatMap(getAllFiles)
     |     else
     |         Seq(file)
     | }
getAllFiles: (file: java.io.File)Seq[java.io.File]

scala> getAllFiles(new java.io.File("u:\\test")).map(println)
u:\test\01 フォルダ\01 フォルダ\01 ファイル.txt
u:\test\01 フォルダ\02 ファイル.txt
u:\test\02 ファイル.txt
res15: Seq[Unit] = ArrayBuffer((), (), ())

■ サブフォルダ以下の ファイルを列挙 (パターンマッチ)
def getAllFiles(file: java.io.File): Seq[java.io.File] = file.isDirectory match {
    case true  => file.listFiles.toSeq.flatMap(getAllFiles)
    case false => Seq(file)
}

getAllFiles(new java.io.File("u:\\test")).map(println)
scala> def getAllFiles(file: java.io.File): Seq[java.io.File] = file.isDirectory match {
     |     case true  => file.listFiles.toSeq.flatMap(getAllFiles)
     |     case false => Seq(file)
     | }
getAllFiles: (file: java.io.File)Seq[java.io.File]

scala> getAllFiles(new java.io.File("u:\\test")).map(println)
u:\test\01 フォルダ\01 フォルダ\01 ファイル.txt
u:\test\01 フォルダ\02 ファイル.txt
u:\test\02 ファイル.txt
res16: Seq[Unit] = ArrayBuffer((), (), ())

F#

更新日 : 2012.05.14
■ 指定フォルダ以下のフォルダ/ファイルを列挙
for d in System.IO.Directory.GetDirectories(@"u:\test") do
    System.Console.WriteLine d
 
for f in System.IO.Directory.GetFiles(@"u:\test") do
    System.Console.WriteLine f
> for d in System.IO.Directory.GetDirectories(@"u:\test") do
-     System.Console.WriteLine d
- ;;
u:\test\01 フォルダ
val it : unit = ()
> for f in System.IO.Directory.GetFiles(@"u:\test") do
-     System.Console.WriteLine f
- ;;
u:\test\02 ファイル.txt
val it : unit = ()
T:\>dir u:\test /b/on
u:\test\01 フォルダ
u:\test\02 ファイル.txt
■ 指定フォルダ以下のフォルダ/ファイルを列挙 (F# らしく)
System.IO.Directory.GetFiles(@"u:\test")
    |>  Seq.iter (fun f -> System.Console.WriteLine f)
> System.IO.Directory.GetFiles(@"u:\test")
-     |>  Seq.iter (fun f -> System.Console.WriteLine f)
- ;;
u:\test\02 ファイル.txt
val it : unit = ()
Seq.iter (fun d -> System.Console.WriteLine d) System.IO.Directory.GetDirectories(@"u:\test")
> Seq.iter (fun d -> System.Console.WriteLine d) System.IO.Directory.GetDirectories(@"u:\test")
- ;;

  Seq.iter (fun d -> System.Console.WriteLine d) System.IO.Directory.GetDirectories(@"u:\test")
  -----------------------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

S:\stdin(28,48): error FS0597: Successive arguments should be separated by spaces or tupled, and arguments involving function or method applications should be parenthesized
>
■ サブフォルダ以下の ファイルを列挙
for f in System.IO.Directory.GetFiles(@"u:\test", "*.*", System.IO.SearchOption.AllDirectories) do
    System.Console.WriteLine f
> for f in System.IO.Directory.GetFiles(@"u:\test", "*.*", System.IO.SearchOption.AllDirectories) do
-     System.Console.WriteLine f
- ;;
u:\test\02 ファイル.txt
u:\test\01 フォルダ\02 ファイル.txt
u:\test\01 フォルダ\01 フォルダ\01 ファイル.txt
val it : unit = ()
T:\>dir u:\test /b/on/s/a-d
u:\test\02 ファイル.txt
u:\test\01 フォルダ\02 ファイル.txt
u:\test\01 フォルダ\01 フォルダ\01 ファイル.txt
■ サブフォルダ以下の ファイルを列挙 (F# らしく)
System.IO.Directory.GetFiles(@"u:\test", "*.*", System.IO.SearchOption.AllDirectories)
    |>  Seq.iter (fun f -> System.Console.WriteLine f)
> System.IO.Directory.GetFiles(@"u:\test", "*.*", System.IO.SearchOption.AllDirectories)
-     |>  Seq.iter (fun f -> System.Console.WriteLine f)
- ;;
u:\test\02 ファイル.txt
u:\test\01 フォルダ\02 ファイル.txt
u:\test\01 フォルダ\01 フォルダ\01 ファイル.txt
val it : unit = ()

C

C++

C++Builder

VC++

C#

更新日 : 2012.05.14
■ 指定フォルダ以下のフォルダ/ファイルを列挙
using System;
using System.IO;
 
class lesson0001
{
    static void Main(string[] args)
    {
        foreach (string d in Directory.GetDirectories(@"u:\test"))
        {
            Console.WriteLine(d);
        }
        foreach (string f in Directory.GetFiles(@"u:\test"))
        {
            Console.WriteLine(f);
        }
    }
}
T:\>csc lesson0001.cs /nologo

T:\>lesson0001
u:\test\01 フォルダ
u:\test\02 ファイル.txt

T:\>dir u:\test /b/on/s
u:\test\01 フォルダ
u:\test\02 ファイル.txt
u:\test\01 フォルダ\01 フォルダ
u:\test\01 フォルダ\02 ファイル.txt
u:\test\01 フォルダ\01 フォルダ\01 ファイル.txt

■ サブフォルダ以下の フォルダ/ファイルを列挙
using System;
using System.IO;
 
class lesson0002
{
    static void Main(string[] args)
    {
        foreach (string d in Directory.GetDirectories(@"u:\test", "*", System.IO.SearchOption.AllDirectories))
        {
            Console.WriteLine(d);
        }
        foreach (string f in Directory.GetFiles(@"u:\test", "*.*", System.IO.SearchOption.AllDirectories))
        {
            Console.WriteLine(f);
        }
    }
}
T:\>csc lesson0002.cs /nologo

T:\>lesson0002
u:\test\01 フォルダ
u:\test\01 フォルダ\01 フォルダ
u:\test\02 ファイル.txt
u:\test\01 フォルダ\02 ファイル.txt
u:\test\01 フォルダ\01 フォルダ\01 ファイル.txt

T:\>dir u:\test /b/on/s
u:\test\01 フォルダ
u:\test\02 ファイル.txt
u:\test\01 フォルダ\01 フォルダ
u:\test\01 フォルダ\02 ファイル.txt
u:\test\01 フォルダ\01 フォルダ\01 ファイル.txt

■ サブフォルダ以下の ファイルを列挙
using System;
using System.IO;
 
class lesson0003
{
    static void Main(string[] args)
    {
        foreach (string f in Directory.GetFiles(@"u:\test", "*.*", System.IO.SearchOption.AllDirectories))
        {
            Console.WriteLine(f);
        }
    }
}
T:\>csc lesson0003.cs /nologo

T:\>lesson0003
u:\test\02 ファイル.txt
u:\test\01 フォルダ\02 ファイル.txt
u:\test\01 フォルダ\01 フォルダ\01 ファイル.txt

T:\>dir u:\test /b/on/s/a-d
u:\test\02 ファイル.txt
u:\test\01 フォルダ\02 ファイル.txt
u:\test\01 フォルダ\01 フォルダ\01 ファイル.txt

Java

更新日 : 2012.05.14
■ 指定フォルダ以下のフォルダ/ファイルを列挙
import java.io.*;
 
public class lesson0001 {
    public static void main(String args[]) {

        String path = "u:\\test";

        for (File file : new File(path).listFiles()) {
            System.out.println(file);
        }
    }
}
T:\>javac lesson0001.java

T:\>java -cp . lesson0001
u:\test\01 フォルダ
u:\test\02 ファイル.txt

T:\>dir u:\test /b/on/s
u:\test\01 フォルダ
u:\test\02 ファイル.txt
u:\test\01 フォルダ\01 フォルダ
u:\test\01 フォルダ\02 ファイル.txt
u:\test\01 フォルダ\01 フォルダ\01 ファイル.txt

■ 再帰処理で サブフォルダ以下の フォルダ/ファイルを列挙
import java.io.*;
 
public class lesson0002 {
    public static void main(String args[]) {

        String path = "u:\\test";

        getAllFiles(new File(path));
    }

    static void getAllFiles(File file) {
        System.out.println(file);

        if (file.isDirectory()) {
            for (File f : new File(file.getPath()).listFiles()) {
                getAllFiles(f);
            }
        }
    }

}
T:\>javac lesson0002.java

T:\>java -cp . lesson0002
u:\test
u:\test\01 フォルダ
u:\test\01 フォルダ\01 フォルダ
u:\test\01 フォルダ\01 フォルダ\01 ファイル.txt
u:\test\01 フォルダ\02 ファイル.txt
u:\test\02 ファイル.txt

T:\>dir u:\test /b/on/s
u:\test\01 フォルダ
u:\test\02 ファイル.txt
u:\test\01 フォルダ\01 フォルダ
u:\test\01 フォルダ\02 ファイル.txt
u:\test\01 フォルダ\01 フォルダ\01 ファイル.txt

■ 再帰処理で サブフォルダ以下の ファイルを列挙
import java.io.*;
 
public class lesson0003 {
    public static void main(String args[]) {

        String path = "u:\\test";

        getAllFiles(new File(path));
    }

    static void getAllFiles(File file) {
        if (file.isDirectory()) {
            for (File f : new File(file.getPath()).listFiles()) {
                getAllFiles(f);
            }
        } else {
            System.out.println(file);
        }
    }

}
T:\>javac lesson0003.java

T:\>java -cp . lesson0003
u:\test\01 フォルダ\01 フォルダ\01 ファイル.txt
u:\test\01 フォルダ\02 ファイル.txt
u:\test\02 ファイル.txt

T:\>dir u:\test /b/on/s/a-d
u:\test\02 ファイル.txt
u:\test\01 フォルダ\02 ファイル.txt
u:\test\01 フォルダ\01 フォルダ\01 ファイル.txt

Objective-C

D

VB

VB.NET

Delphi

Ada

PL/SQL

T-SQL

関数型

inserted by FC2 system