DirectoryInfo.GetFileSystemInfos メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
現在のディレクトリのファイルおよびサブディレクトリを表す、厳密に型指定された FileSystemInfo オブジェクトの配列を取得します。
オーバーロード
GetFileSystemInfos() |
ディレクトリ内のすべてのファイルとサブディレクトリを表す、厳密に型指定された FileSystemInfo エントリの配列を返します。 |
GetFileSystemInfos(String) |
指定した検索条件に一致するファイルおよびサブディレクトリを表す、厳密に型指定された FileSystemInfo オブジェクトの配列を取得します。 |
GetFileSystemInfos(String, EnumerationOptions) |
指定した検索パターンと列挙オプションに一致するファイルとサブディレクトリを表す、厳密に型指定された FileSystemInfo オブジェクトの配列を取得します。 |
GetFileSystemInfos(String, SearchOption) |
指定した検索条件に一致するファイルおよびサブディレクトリを表す FileSystemInfo オブジェクトの配列を取得します。 |
GetFileSystemInfos()
- ソース:
- DirectoryInfo.cs
- ソース:
- DirectoryInfo.cs
- ソース:
- DirectoryInfo.cs
ディレクトリ内のすべてのファイルとサブディレクトリを表す、厳密に型指定された FileSystemInfo エントリの配列を返します。
public:
cli::array <System::IO::FileSystemInfo ^> ^ GetFileSystemInfos();
public System.IO.FileSystemInfo[] GetFileSystemInfos ();
member this.GetFileSystemInfos : unit -> System.IO.FileSystemInfo[]
Public Function GetFileSystemInfos () As FileSystemInfo()
戻り値
厳密に型指定された FileSystemInfo エントリの配列。
例外
パスが正しくありません (たとえば、マップされていないドライブにあるなど)。
例
次の例では、指定したディレクトリの下にあるファイルとディレクトリをカウントします。
using System;
using System.IO;
class DirectoryFileCount
{
static long files = 0;
static long directories = 0;
static void Main()
{
try
{
Console.WriteLine("Enter the path to a directory:");
string directory = Console.ReadLine();
// Create a new DirectoryInfo object.
DirectoryInfo dir = new DirectoryInfo(directory);
if (!dir.Exists)
{
throw new DirectoryNotFoundException("The directory does not exist.");
}
// Call the GetFileSystemInfos method.
FileSystemInfo[] infos = dir.GetFileSystemInfos();
Console.WriteLine("Working...");
// Pass the result to the ListDirectoriesAndFiles
// method defined below.
ListDirectoriesAndFiles(infos);
// Display the results to the console.
Console.WriteLine("Directories: {0}", directories);
Console.WriteLine("Files: {0}", files);
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
finally
{
Console.ReadLine();
}
}
static void ListDirectoriesAndFiles(FileSystemInfo[] FSInfo)
{
// Check the FSInfo parameter.
if (FSInfo == null)
{
throw new ArgumentNullException("FSInfo");
}
// Iterate through each item.
foreach (FileSystemInfo i in FSInfo)
{
// Check to see if this is a DirectoryInfo object.
if (i is DirectoryInfo)
{
// Add one to the directory count.
directories++;
// Cast the object to a DirectoryInfo object.
DirectoryInfo dInfo = (DirectoryInfo)i;
// Iterate through all sub-directories.
ListDirectoriesAndFiles(dInfo.GetFileSystemInfos());
}
// Check to see if this is a FileInfo object.
else if (i is FileInfo)
{
// Add one to the file count.
files++;
}
}
}
}
open System.IO
let mutable files = 0
let mutable directories = 0
let rec listDirectoriesAndFiles (fsInfo: FileSystemInfo[]) =
// Check the FSInfo parameter.
if fsInfo = null then
nullArg "fsInfo"
// Iterate through each item.
for i in fsInfo do
// Check to see if this is a DirectoryInfo object.
match i with
| :? DirectoryInfo as dInfo ->
// Add one to the directory count.
directories <- directories + 1
// Iterate through all sub-directories.
listDirectoriesAndFiles (dInfo.GetFileSystemInfos())
// Check to see if this is a FileInfo object.
| :? FileInfo ->
// Add one to the file count.
files <- files + 1
| _ -> ()
try
printfn "Enter the path to a directory:"
let directory = stdin.ReadLine()
// Create a new DirectoryInfo object.
let dir = DirectoryInfo directory
if not dir.Exists then
raise (DirectoryNotFoundException "The directory does not exist.")
// Call the GetFileSystemInfos method.
let infos = dir.GetFileSystemInfos()
printfn "Working..."
// Pass the result to the ListDirectoriesAndFiles
// method defined below.
listDirectoriesAndFiles infos
// Display the results to the console.
printfn $"Directories: {directories}"
printfn $"Files: {files}"
with e ->
printfn $"{e.Message}"
Imports System.IO
Module DirectoryFileCount
Dim files As Long = 0
Dim directories As Long = 0
Sub Main()
Try
Console.WriteLine("Enter the path to a directory:")
Dim directory As String = Console.ReadLine()
' Create a new DirectoryInfo object.
Dim dir As New DirectoryInfo(directory)
If Not dir.Exists Then
Throw New DirectoryNotFoundException("The directory does not exist.")
End If
' Call the GetFileSystemInfos method.
Dim infos As FileSystemInfo() = dir.GetFileSystemInfos()
Console.WriteLine("Working...")
' Pass the result to the ListDirectoriesAndFiles
' method defined below.
ListDirectoriesAndFiles(infos)
' Display the results to the console.
Console.WriteLine("Directories: {0}", directories)
Console.WriteLine("Files: {0}", files)
Catch e As Exception
Console.WriteLine(e.Message)
Finally
Console.ReadLine()
End Try
End Sub
Sub ListDirectoriesAndFiles(ByVal FSInfo() As FileSystemInfo)
' Check the FSInfo parameter.
If FSInfo Is Nothing Then
Throw New ArgumentNullException("FSInfo")
End If
' Iterate through each item.
Dim i As FileSystemInfo
For Each i In FSInfo
' Check to see if this is a DirectoryInfo object.
If TypeOf i Is DirectoryInfo Then
' Add one to the directory count.
directories += 1
' Cast the object to a DirectoryInfo object.
Dim dInfo As DirectoryInfo = CType(i, DirectoryInfo)
' Iterate through all sub-directories.
ListDirectoriesAndFiles(dInfo.GetFileSystemInfos())
' Check to see if this is a FileInfo object.
ElseIf TypeOf i Is FileInfo Then
' Add one to the file count.
files += 1
End If
Next i
End Sub
End Module
注釈
にファイルまたはディレクトリがない場合、 DirectoryInfoこのメソッドは空の配列を返します。 このメソッドは再帰的ではありません。
サブディレクトリの FileSystemInfo 場合、このメソッドによって返されるオブジェクトは、派生クラス DirectoryInfoにキャストできます。 FileAttributesプロパティによって返される値をFileSystemInfo.Attributes使用して、 FileSystemInfo がファイルとディレクトリのどちらを表すかを判断します。
このメソッドは、次 FileSystemInfo のプロパティの値を事前に設定します。
こちらもご覧ください
適用対象
GetFileSystemInfos(String)
- ソース:
- DirectoryInfo.cs
- ソース:
- DirectoryInfo.cs
- ソース:
- DirectoryInfo.cs
指定した検索条件に一致するファイルおよびサブディレクトリを表す、厳密に型指定された FileSystemInfo オブジェクトの配列を取得します。
public:
cli::array <System::IO::FileSystemInfo ^> ^ GetFileSystemInfos(System::String ^ searchPattern);
public System.IO.FileSystemInfo[] GetFileSystemInfos (string searchPattern);
member this.GetFileSystemInfos : string -> System.IO.FileSystemInfo[]
Public Function GetFileSystemInfos (searchPattern As String) As FileSystemInfo()
パラメーター
- searchPattern
- String
ディレクトリおよびファイルの名前と照合する検索文字列。 このパラメーターには有効なリテラルのパスとワイルドカード (* と ?) 文字の組み合わせを含めることができますが、正規表現はサポートされていません。
戻り値
検索基準に一致する、厳密に型指定された FileSystemInfo
オブジェクトの配列。
例外
.NET Frameworkおよび .NET Core バージョンが 2.1 より前の場合: searchPattern
メソッドで定義された 1 つ以上の無効な文字がGetInvalidPathChars()含まれています。
searchPattern
が null
です。
指定されたパスが正しくありません (たとえば、マップされていないドライブにあるなど)。
呼び出し元に、必要なアクセス許可がありません。
例
次の例では、指定した検索パターンに一致するファイルとディレクトリをカウントします。
using System;
using System.IO;
class DirectoryFileCount
{
static long files = 0;
static long directories = 0;
static void Main()
{
try
{
Console.WriteLine("Enter the path to a directory:");
string directory = Console.ReadLine();
Console.WriteLine("Enter a search string (for example *p*):");
string searchString = Console.ReadLine();
// Create a new DirectoryInfo object.
DirectoryInfo dir = new DirectoryInfo(directory);
if (!dir.Exists)
{
throw new DirectoryNotFoundException("The directory does not exist.");
}
// Call the GetFileSystemInfos method.
FileSystemInfo[] infos = dir.GetFileSystemInfos(searchString);
Console.WriteLine("Working...");
// Pass the result to the ListDirectoriesAndFiles
// method defined below.
ListDirectoriesAndFiles(infos, searchString);
// Display the results to the console.
Console.WriteLine("Directories: {0}", directories);
Console.WriteLine("Files: {0}", files);
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
finally
{
Console.ReadLine();
}
}
static void ListDirectoriesAndFiles(FileSystemInfo[] FSInfo, string SearchString)
{
// Check the parameters.
if (FSInfo == null)
{
throw new ArgumentNullException("FSInfo");
}
if (SearchString == null || SearchString.Length == 0)
{
throw new ArgumentNullException("SearchString");
}
// Iterate through each item.
foreach (FileSystemInfo i in FSInfo)
{
// Check to see if this is a DirectoryInfo object.
if (i is DirectoryInfo)
{
// Add one to the directory count.
directories++;
// Cast the object to a DirectoryInfo object.
DirectoryInfo dInfo = (DirectoryInfo)i;
// Iterate through all sub-directories.
ListDirectoriesAndFiles(dInfo.GetFileSystemInfos(SearchString), SearchString);
}
// Check to see if this is a FileInfo object.
else if (i is FileInfo)
{
// Add one to the file count.
files++;
}
}
}
}
open System
open System.IO
let mutable files = 0
let mutable directories = 0
let rec listDirectoriesAndFiles (fsInfo: FileSystemInfo[]) searchString =
// Check the parameters.
if fsInfo = null then
nullArg "fsInfo"
if String.IsNullOrEmpty searchString then
invalidArg "searchString" "Search string cannot be empty."
// Iterate through each item.
for i in fsInfo do
// Check to see if this is a DirectoryInfo object.
match i with
| :? DirectoryInfo as dInfo ->
// Add one to the directory count.
directories <- directories + 1
// Iterate through all sub-directories.
listDirectoriesAndFiles (dInfo.GetFileSystemInfos searchString) searchString
// Check to see if this is a FileInfo object.
| :? FileInfo ->
// Add one to the file count.
files <- files + 1
| _ -> ()
try
printfn "Enter the path to a directory:"
let directory = stdin.ReadLine()
printfn "Enter a search string (for example *p*):"
let searchString = stdin.ReadLine()
// Create a new DirectoryInfo object.
let dir = DirectoryInfo directory
if not dir.Exists then
raise (DirectoryNotFoundException "The directory does not exist.")
// Call the GetFileSystemInfos method.
let infos = dir.GetFileSystemInfos searchString
printfn "Working..."
// Pass the result to the ListDirectoriesAndFiles
// method defined below.
listDirectoriesAndFiles infos searchString
// Display the results to the console.
printfn $"Directories: {directories}"
printfn $"Files: {files}"
with e ->
printfn $"{e.Message}"
Imports System.IO
Module DirectoryFileCount
Dim files As Long = 0
Dim directories As Long = 0
Sub Main()
Try
Console.WriteLine("Enter the path to a directory:")
Dim directory As String = Console.ReadLine()
Console.WriteLine("Enter a search string (for example *p*):")
Dim searchString As String = Console.ReadLine()
' Create a new DirectoryInfo object.
Dim dir As New DirectoryInfo(directory)
If Not dir.Exists Then
Throw New DirectoryNotFoundException("The directory does not exist.")
End If
' Call the GetFileSystemInfos method.
Dim infos As FileSystemInfo() = dir.GetFileSystemInfos(searchString)
Console.WriteLine("Working...")
' Pass the result to the ListDirectoriesAndFiles
' method defined below.
ListDirectoriesAndFiles(infos, searchString)
' Display the results to the console.
Console.WriteLine("Directories: {0}", directories)
Console.WriteLine("Files: {0}", files)
Catch e As Exception
Console.WriteLine(e.Message)
Finally
Console.ReadLine()
End Try
End Sub
Sub ListDirectoriesAndFiles(ByVal FSInfo() As FileSystemInfo, ByVal SearchString As String)
' Check the parameters.
If FSInfo Is Nothing Then
Throw New ArgumentNullException("FSInfo")
End If
If SearchString Is Nothing OrElse SearchString.Length = 0 Then
Throw New ArgumentNullException("SearchString")
End If
' Iterate through each item.
Dim i As FileSystemInfo
For Each i In FSInfo
' Check to see if this is a DirectoryInfo object.
If TypeOf i Is DirectoryInfo Then
' Add one to the directory count.
directories += 1
' Cast the object to a DirectoryInfo object.
Dim dInfo As DirectoryInfo = CType(i, DirectoryInfo)
' Iterate through all sub-directories.
ListDirectoriesAndFiles(dInfo.GetFileSystemInfos(SearchString), SearchString)
' Check to see if this is a FileInfo object.
ElseIf TypeOf i Is FileInfo Then
' Add one to the file count.
files += 1
End If
Next i
End Sub
End Module
注釈
searchPattern
にはリテラル文字とワイルドカード文字の組み合わせを指定できますが、正規表現はサポートされていません。 では、次のワイルドカード指定子を searchPattern
使用できます。
ワイルドカード指定子 | [一致する] |
---|---|
* (アスタリスク) | その位置の 0 個以上の文字。 |
? (疑問符) | その位置の 0 文字または 1 文字。 |
ワイルドカード以外の文字はリテラル文字です。 たとえば、文字列 "*t" は文字 "t" で終わるすべての名前を検索します。 ". searchPattern
文字列 "s*" は、文字 "s" でpath
始まるすべての名前を検索します。
このメソッドは再帰的ではありません。
サブディレクトリの FileSystemInfo 場合、このメソッドによって返されるオブジェクトは、派生クラス DirectoryInfoにキャストできます。 FileAttributesプロパティによって返される値をFileSystemInfo.Attributes使用して、 FileSystemInfo がファイルとディレクトリのどちらを表すかを判断します。
ワイルドカードを使用できます。 たとえば、 searchPattern
文字列 "*t" は、末尾に文字 "t" を付けてすべてのディレクトリ名 path
を検索します。 文字列 "s*" は searchPattern
、文字 "s" で path
始まるすべてのディレクトリ名を検索します。
文字列 ".." は、ディレクトリ名 "a.. など、 で有効なディレクトリ名の一部として指定されている場合にのみ使用 searchPattern
できます。b". ディレクトリ階層を上に移動するために使用することはできません。 ファイルまたはディレクトリがない場合、または 内DirectoryInfoの文字列に一致searchPattern
するファイルまたはディレクトリがない場合、このメソッドは空の配列を返します。
このメソッドは、次 FileSystemInfo のプロパティの値を事前に設定します。
こちらもご覧ください
適用対象
GetFileSystemInfos(String, EnumerationOptions)
- ソース:
- DirectoryInfo.cs
- ソース:
- DirectoryInfo.cs
- ソース:
- DirectoryInfo.cs
指定した検索パターンと列挙オプションに一致するファイルとサブディレクトリを表す、厳密に型指定された FileSystemInfo オブジェクトの配列を取得します。
public:
cli::array <System::IO::FileSystemInfo ^> ^ GetFileSystemInfos(System::String ^ searchPattern, System::IO::EnumerationOptions ^ enumerationOptions);
public System.IO.FileSystemInfo[] GetFileSystemInfos (string searchPattern, System.IO.EnumerationOptions enumerationOptions);
member this.GetFileSystemInfos : string * System.IO.EnumerationOptions -> System.IO.FileSystemInfo[]
Public Function GetFileSystemInfos (searchPattern As String, enumerationOptions As EnumerationOptions) As FileSystemInfo()
パラメーター
- searchPattern
- String
ディレクトリおよびファイルの名前と照合する検索文字列。 このパラメーターには有効なリテラルのパスとワイルドカード (* と ?) 文字の組み合わせを含めることができますが、正規表現はサポートされていません。
- enumerationOptions
- EnumerationOptions
使用する検索と列挙の構成を記述するオブジェクト。
戻り値
searchPattern
と enumerationOptions
に一致する、厳密に型指定された FileSystemInfo
オブジェクトの配列。
例外
.NET Frameworkおよび .NET Core バージョンが 2.1 より前の場合: searchPattern
メソッドで定義された 1 つ以上の無効な文字がGetInvalidPathChars()含まれています。
searchPattern
が null
です。
指定されたパスが正しくありません (たとえば、マップされていないドライブにあるなど)。
呼び出し元に、必要なアクセス許可がありません。
注釈
searchPattern
にはリテラル文字とワイルドカード文字の組み合わせを指定できますが、正規表現はサポートされていません。 では、次のワイルドカード指定子を searchPattern
使用できます。
ワイルドカード指定子 | [一致する] |
---|---|
* (アスタリスク) | その位置の 0 個以上の文字。 |
? (疑問符) | その位置の 0 文字または 1 文字。 |
ワイルドカード以外の文字はリテラル文字です。 たとえば、文字列 "*t" は文字 "t" で終わるすべての名前を検索します。 ". searchPattern
文字列 "s*" は、文字 "s" でpath
始まるすべての名前を検索します。
このメソッドは再帰的ではありません。
サブディレクトリの FileSystemInfo 場合、このメソッドによって返されるオブジェクトは、派生クラス DirectoryInfoにキャストできます。 FileAttributesプロパティによって返される値をFileSystemInfo.Attributes使用して、 FileSystemInfo がファイルとディレクトリのどちらを表すかを判断します。
ワイルドカードを使用できます。 たとえば、 searchPattern
文字列 "*t" は、末尾に文字 "t" を付けてすべてのディレクトリ名 path
を検索します。 文字列 "s*" は searchPattern
、文字 "s" で path
始まるすべてのディレクトリ名を検索します。
文字列 ".." は、ディレクトリ名 "a.. など、 で有効なディレクトリ名の一部として指定されている場合にのみ使用 searchPattern
できます。b". ディレクトリ階層を上に移動するために使用することはできません。 ファイルまたはディレクトリがない場合、または 内DirectoryInfoの文字列に一致searchPattern
するファイルまたはディレクトリがない場合、このメソッドは空の配列を返します。
このメソッドは、次 FileSystemInfo のプロパティの値を事前に設定します。
適用対象
GetFileSystemInfos(String, SearchOption)
- ソース:
- DirectoryInfo.cs
- ソース:
- DirectoryInfo.cs
- ソース:
- DirectoryInfo.cs
指定した検索条件に一致するファイルおよびサブディレクトリを表す FileSystemInfo オブジェクトの配列を取得します。
public:
cli::array <System::IO::FileSystemInfo ^> ^ GetFileSystemInfos(System::String ^ searchPattern, System::IO::SearchOption searchOption);
public System.IO.FileSystemInfo[] GetFileSystemInfos (string searchPattern, System.IO.SearchOption searchOption);
member this.GetFileSystemInfos : string * System.IO.SearchOption -> System.IO.FileSystemInfo[]
Public Function GetFileSystemInfos (searchPattern As String, searchOption As SearchOption) As FileSystemInfo()
パラメーター
- searchPattern
- String
ディレクトリおよびファイルの名前と照合する検索文字列。 このパラメーターには有効なリテラルのパスとワイルドカード (* と ?) 文字の組み合わせを含めることができますが、正規表現はサポートされていません。
- searchOption
- SearchOption
検索操作に現在のディレクトリのみを含めるのか、またはすべてのサブディレクトリを含めるのかを指定する列挙値の 1 つ。 既定値は TopDirectoryOnly です。
戻り値
検索条件に一致するファイル システム エントリの配列。
例外
.NET Frameworkおよび .NET Core バージョンが 2.1 より前の場合: searchPattern
メソッドで定義された 1 つ以上の無効な文字がGetInvalidPathChars()含まれています。
searchPattern
が null
です。
searchOption
は正しい SearchOption 値ではありません。
指定されたパスが正しくありません (たとえば、マップされていないドライブにあるなど)。
呼び出し元に、必要なアクセス許可がありません。
注釈
searchPattern
にはリテラル文字とワイルドカード文字の組み合わせを指定できますが、正規表現はサポートされていません。 では、次のワイルドカード指定子を searchPattern
使用できます。
ワイルドカード指定子 | [一致する] |
---|---|
* (アスタリスク) | その位置の 0 個以上の文字。 |
? (疑問符) | その位置の 0 文字または 1 文字。 |
ワイルドカード以外の文字はリテラル文字です。 たとえば、文字列 "*t" は文字 "t" で終わるすべての名前を検索します。 ". searchPattern
文字列 "s*" は、文字 "s" でpath
始まるすべての名前を検索します。
サブディレクトリの場合、 FileSystemInfo このメソッドによって返されるオブジェクトは、派生クラス DirectoryInfoにキャストできます。 プロパティによって FileAttributes 返される値を使用して、 FileSystemInfo.Attributes がファイルまたはディレクトリを表しているかどうかを FileSystemInfo 判断します。
このメソッドは、次 FileSystemInfo のプロパティの値を事前に設定します。
こちらもご覧ください
適用対象
.NET