このエントリーをはてなブックマークに追加


ファイル一覧を取得する・GetFiles,EnumerateFiles,Directory.GetFiles

System.IO.Directory.GetFiles, System.IO.Directory.EnumerateFilesを使ったファイル名一覧を取得するサンプルコードを紹介します。
System.IO.Directory.GetFilesはStringの配列が結果として返却され、System.IO.Directory.EnumerateFilesは、IEnumerable<string>,IEnumerable(Of String)が返却されます。
オプションにより、サブフォルダのファイル一覧も取得することができます。
以下に C#, Visual Basic(VB) のサンプルコードを紹介します。



スポンサーリンク

参考サイト

使用環境

  • Windows 10 ver.1903
  • Visual Studio 2019
  • .NET Core
  • コンソールアプリケーション

System.IO.Directory.GetFiles のサンプルコード

System.IO.Directory.GetFiles メソッドを使ったサンプルコードを以下に紹介します。

指定したディレクトリ内のファイル一覧を取得する

以下のC#,Visual Basic(VB)のサンプルコードは、指定したディレクトリ内のファイル一覧を取得するサンプルコードをになります。
フォルダは対象になりません。ファイルのみの取得となります。

C#

using System;

class Program
{
    static void Main(string[] args)
    {
        String path = @"C:\Windows\SoftwareDistribution";
        String[] files;
        try
        {
            files = System.IO.Directory.GetFiles(path);
            foreach (string f in files)
            {
                Console.WriteLine(f);
            }
        }
        catch (Exception e)
        {
            Console.WriteLine(e.Message);
        }
    }
}

Visual Basic(VB)

Imports System

Module Program
    Sub Main(args As String())

        Dim path As String = "C:\Windows\SoftwareDistribution"
        Dim files As String()

        Try
            files = System.IO.Directory.GetFiles(path)

            For Each f As String In files
                Console.WriteLine(f)
            Next

        Catch e As Exception
            Console.WriteLine(e.Message)
        End Try

    End Sub
End Module

実行結果

上記サンプルコードで指定した、C:\Windows\SoftwareDistribution ディレクトリ内のファイル一覧が表示されます。

01.png
 

指定したディレクトリおよびサブディレクトリ内のファイル一覧を取得する

以下のC#,Visual Basic(VB)のサンプルコードは、指定したディレクトリ内のファイルおよびサブディレクトリ内のファイル一覧を取得するサンプルコードをになります。
フォルダは対象になりません。ファイルのみの取得となります。

C#

上記のサンプルコードとの違いは、以下の部分になります。

System.IO.Directory.GetFiles(path,"*",System.IO.SearchOption.AllDirectories);

2番目の引数がパターンなので、すべてを対象とする*を指定し、すべてのディレクトリを取得する AllDirectories を指定しています。
AllDirectoriesについては、以下のリンクを参照してください。

using System;

class Program
{
    static void Main(string[] args)
    {
        String path = @"C:\Windows\SoftwareDistribution";
        String[] files;
        try
        {
            files = System.IO.Directory.GetFiles(path,"*",System.IO.SearchOption.AllDirectories);
            foreach (string f in files)
            {
                Console.WriteLine(f);
            }
        }
        catch (Exception e)
        {
            Console.WriteLine(e.Message);
        }
    }
}

Visual Basic(VB)

上記のサンプルコードとの違いは、以下の部分になります。

System.IO.Directory.GetFiles(path, "*", System.IO.SearchOption.AllDirectories)

2番目の引数がパターンなので、すべてを対象とする*を指定し、すべてのディレクトリを取得する AllDirectories を指定しています。
AllDirectoriesについては、以下のリンクを参照してください。

Imports System

Module Program
    Sub Main(args As String())

        Dim path As String = "C:\Windows\SoftwareDistribution"
        Dim files As String()

        Try
            files = System.IO.Directory.GetFiles(path, "*", System.IO.SearchOption.AllDirectories)

            For Each f As String In files
                Console.WriteLine(f)
            Next

        Catch e As Exception
            Console.WriteLine(e.Message)
        End Try

    End Sub
End Module

実行結果

サブフォルダを含むファイル一覧が表示されます。

02.png

System.IO.Directory.EnumerateFiles のサンプルコード

System.IO.Directory.EnumerateFiles メソッドを使ったサンプルコードを以下に紹介します。

指定したディレクトリ内のファイル一覧を取得する

以下のC#,Visual Basic(VB)のサンプルコードは、指定したディレクトリ内のファイル一覧を取得するサンプルコードをになります。
フォルダは対象になりません。ファイルのみの取得となります。

C#

using System;
using System.Collections.Generic;

class Program
{
    static void Main(string[] args)
    {
        String path = @"C:\Windows\SoftwareDistribution";
        IEnumerable<string> files; 
        try
        {
            files = System.IO.Directory.EnumerateFiles(path);
            foreach (string f in files)
            {
                Console.WriteLine(f);
            }
        }
        catch (Exception e)
        {
            Console.WriteLine(e.Message);
        }
    }
}

Visual Basic(VB)

Imports System
Imports System.Collections.Generic

Module Program
    Sub Main(args As String())

        Dim path As String = "C:\Windows\SoftwareDistribution"
        Dim files As IEnumerable(Of String)

        Try
            files = System.IO.Directory.EnumerateFiles(path)
            For Each f As String In files
                Console.WriteLine(f)
            Next
        Catch e As Exception
            Console.WriteLine(e.Message)
        End Try

    End Sub
End Module

実行結果

上記サンプルコードで指定した、C:\Windows\SoftwareDistribution ディレクトリ内のファイル一覧が表示されます。

03.png
 

指定したディレクトリおよびサブディレクトリ内のファイル一覧を取得する

以下のC#,Visual Basic(VB)のサンプルコードは、指定したディレクトリ内のファイルおよびサブディレクトリ内のファイル一覧を取得するサンプルコードをになります。
フォルダは対象になりません。ファイルのみの取得となります。

C#

上記のサンプルコードとの違いは、以下の部分になります。

System.IO.Directory.EnumerateFiles(path,"*",System.IO.SearchOption.AllDirectories);

2番目の引数がパターンなので、すべてを対象とする*を指定し、すべてのディレクトリを取得する AllDirectories を指定しています。
AllDirectoriesについては、以下のリンクを参照してください。

using System;
using System.Collections.Generic;

class Program
{
    static void Main(string[] args)
    {
        String path = @"C:\Windows\SoftwareDistribution";
        IEnumerable<string> files; 
        try
        {
            files = System.IO.Directory.EnumerateFiles(path, "*", System.IO.SearchOption.AllDirectories);
            foreach (string f in files)
            {
                Console.WriteLine(f);
            }
        }
        catch (Exception e)
        {
            Console.WriteLine(e.Message);
        }
    }
}

Visual Basic(VB)

上記のサンプルコードとの違いは、以下の部分になります。

System.IO.Directory.EnumerateFiles(path, "*", System.IO.SearchOption.AllDirectories)

2番目の引数がパターンなので、すべてを対象とする*を指定し、すべてのディレクトリを取得する AllDirectories を指定しています。
AllDirectoriesについては、以下のリンクを参照してください。

Imports System
Imports System.Collections.Generic

Module Program
    Sub Main(args As String())

        Dim path As String = "C:\Windows\SoftwareDistribution"
        Dim files As IEnumerable(Of String)

        Try
            files = System.IO.Directory.EnumerateFiles(path, "*", System.IO.SearchOption.AllDirectories)
            For Each f As String In files
                Console.WriteLine(f)
            Next
        Catch e As Exception
            Console.WriteLine(e.Message)
        End Try

    End Sub
End Module

実行結果

サブフォルダを含むファイル一覧が表示されます。

04.png

以上、ファイル一覧を取得するメソッド、GetFiles と EnumerateFiles のサンプルコードの紹介でした。



スポンサーリンク


添付ファイル: file04.png 26件 [詳細] file03.png 20件 [詳細] file02.png 26件 [詳細] file01.png 25件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2019-12-21 (土) 18:24:28