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) のサンプルコードを紹介します。
System.IO.Directory.GetFiles メソッドを使ったサンプルコードを以下に紹介します。
以下のC#,Visual Basic(VB)のサンプルコードは、指定したディレクトリ内のファイル一覧を取得するサンプルコードをになります。
フォルダは対象になりません。ファイルのみの取得となります。
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); } } }
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)のサンプルコードは、指定したディレクトリ内のファイルおよびサブディレクトリ内のファイル一覧を取得するサンプルコードをになります。
フォルダは対象になりません。ファイルのみの取得となります。
上記のサンプルコードとの違いは、以下の部分になります。
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); } } }
上記のサンプルコードとの違いは、以下の部分になります。
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
サブフォルダを含むファイル一覧が表示されます。
System.IO.Directory.EnumerateFiles メソッドを使ったサンプルコードを以下に紹介します。
以下のC#,Visual Basic(VB)のサンプルコードは、指定したディレクトリ内のファイル一覧を取得するサンプルコードをになります。
フォルダは対象になりません。ファイルのみの取得となります。
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); } } }
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)のサンプルコードは、指定したディレクトリ内のファイルおよびサブディレクトリ内のファイル一覧を取得するサンプルコードをになります。
フォルダは対象になりません。ファイルのみの取得となります。
上記のサンプルコードとの違いは、以下の部分になります。
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); } } }
上記のサンプルコードとの違いは、以下の部分になります。
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
サブフォルダを含むファイル一覧が表示されます。
以上、ファイル一覧を取得するメソッド、GetFiles と EnumerateFiles のサンプルコードの紹介でした。