ファイル一覧を取得する・GetFiles,EnumerateFiles,Directory.GetFiles †System.IO.Directory.GetFiles, System.IO.Directory.EnumerateFilesを使ったファイル名一覧を取得するサンプルコードを紹介します。 参考サイト †
使用環境 †
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 ディレクトリ内のファイル一覧が表示されます。 指定したディレクトリおよびサブディレクトリ内のファイル一覧を取得する †以下のC#,Visual Basic(VB)のサンプルコードは、指定したディレクトリ内のファイルおよびサブディレクトリ内のファイル一覧を取得するサンプルコードをになります。 C# †上記のサンプルコードとの違いは、以下の部分になります。 System.IO.Directory.GetFiles(path,"*",System.IO.SearchOption.AllDirectories); 2番目の引数がパターンなので、すべてを対象とする*を指定し、すべてのディレクトリを取得する 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 を指定しています。 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 実行結果 †サブフォルダを含むファイル一覧が表示されます。 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 ディレクトリ内のファイル一覧が表示されます。 指定したディレクトリおよびサブディレクトリ内のファイル一覧を取得する †以下のC#,Visual Basic(VB)のサンプルコードは、指定したディレクトリ内のファイルおよびサブディレクトリ内のファイル一覧を取得するサンプルコードをになります。 C# †上記のサンプルコードとの違いは、以下の部分になります。 System.IO.Directory.EnumerateFiles(path,"*",System.IO.SearchOption.AllDirectories); 2番目の引数がパターンなので、すべてを対象とする*を指定し、すべてのディレクトリを取得する 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 を指定しています。 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 実行結果 †サブフォルダを含むファイル一覧が表示されます。 以上、ファイル一覧を取得するメソッド、GetFiles と EnumerateFiles のサンプルコードの紹介でした。 |