FileInfo クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
ファイルの作成、コピー、削除、移動、および開くためのプロパティとインスタンス メソッドを提供し、FileStream オブジェクトの作成に役立ちます。 このクラスは継承できません。
public ref class FileInfo sealed : System::IO::FileSystemInfo
public sealed class FileInfo : System.IO.FileSystemInfo
[System.Serializable]
public sealed class FileInfo : System.IO.FileSystemInfo
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class FileInfo : System.IO.FileSystemInfo
type FileInfo = class
inherit FileSystemInfo
[<System.Serializable>]
type FileInfo = class
inherit FileSystemInfo
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type FileInfo = class
inherit FileSystemInfo
Public NotInheritable Class FileInfo
Inherits FileSystemInfo
- 継承
- 継承
- 属性
例
次の例は、FileInfo
クラスのメイン メンバーの一部を示しています。
プロパティが最初に取得されると、FileInfo は Refresh メソッドを呼び出し、ファイルに関する情報をキャッシュします。 後続の呼び出しでは、Refresh を呼び出して、情報の最新のコピーを取得する必要があります。
using namespace System;
using namespace System::IO;
int main()
{
String^ path = Path::GetTempFileName();
FileInfo^ fi1 = gcnew FileInfo( path );
//Create a file to write to.
StreamWriter^ sw = fi1->CreateText();
try
{
sw->WriteLine( "Hello" );
sw->WriteLine( "And" );
sw->WriteLine( "Welcome" );
}
finally
{
if ( sw )
delete (IDisposable^)sw;
}
//Open the file to read from.
StreamReader^ sr = fi1->OpenText();
try
{
String^ s = "";
while ( s = sr->ReadLine() )
{
Console::WriteLine( s );
}
}
finally
{
if ( sr )
delete (IDisposable^)sr;
}
try
{
String^ path2 = Path::GetTempFileName();
FileInfo^ fi2 = gcnew FileInfo( path2 );
//Ensure that the target does not exist.
fi2->Delete();
//Copy the file.
fi1->CopyTo( path2 );
Console::WriteLine( "{0} was copied to {1}.", path, path2 );
//Delete the newly created file.
fi2->Delete();
Console::WriteLine( "{0} was successfully deleted.", path2 );
}
catch ( Exception^ e )
{
Console::WriteLine( "The process failed: {0}", e );
}
}
using System;
using System.IO;
class Test
{
public static void Main()
{
string path = Path.GetTempFileName();
var fi1 = new FileInfo(path);
// Create a file to write to.
using (StreamWriter sw = fi1.CreateText())
{
sw.WriteLine("Hello");
sw.WriteLine("And");
sw.WriteLine("Welcome");
}
// Open the file to read from.
using (StreamReader sr = fi1.OpenText())
{
var s = "";
while ((s = sr.ReadLine()) != null)
{
Console.WriteLine(s);
}
}
try
{
string path2 = Path.GetTempFileName();
var fi2 = new FileInfo(path2);
// Ensure that the target does not exist.
fi2.Delete();
// Copy the file.
fi1.CopyTo(path2);
Console.WriteLine($"{path} was copied to {path2}.");
// Delete the newly created file.
fi2.Delete();
Console.WriteLine($"{path2} was successfully deleted.");
}
catch (Exception e)
{
Console.WriteLine($"The process failed: {e.ToString()}");
}
}
}
Imports System.IO
Public Class Test
Public Shared Sub Main()
Dim path1 As String = Path.GetTempFileName()
Dim path2 As String = Path.GetTempFileName()
Dim fi As New FileInfo(path1)
' Create a file to write to.
Using sw As StreamWriter = fi.CreateText()
sw.WriteLine("Hello")
sw.WriteLine("And")
sw.WriteLine("Welcome")
End Using
Try
' Open the file to read from.
Using sr As StreamReader = fi.OpenText()
Do While sr.Peek() >= 0
Console.WriteLine(sr.ReadLine())
Loop
End Using
Dim fi2 As New FileInfo(path2)
' Ensure that the target does not exist.
fi2.Delete()
' Copy the file.
fi.CopyTo(path2)
Console.WriteLine($"{path1} was copied to {path2}.")
' Delete the newly created file.
fi2.Delete()
Console.WriteLine($"{path2} was successfully deleted.")
Catch e As Exception
Console.WriteLine($"The process failed: {e.ToString()}.")
End Try
End Sub
End Class
この例では、次のような出力が生成されます。
Hello
And
Welcome
C:\Users\userName\AppData\Local\Temp\tmp70AB.tmp was copied to C:\Users\userName\AppData\Local\Temp\tmp70CB.tmp.
C:\Users\userName\AppData\Local\Temp\tmp70CB.tmp was successfully deleted.
注釈
ファイルのコピー、移動、名前変更、作成、開く、削除、ファイルへの追加などの一般的な操作には、FileInfo クラスを使用します。
同じファイルに対して複数の操作を実行する場合、セキュリティ チェックが常に必要になるとは限らないため、File クラスの対応する静的メソッドではなく、FileInfo インスタンス メソッドを使用する方が効率的です。
FileInfo メソッドの多くは、ファイルを作成または開くときに他の I/O 型を返します。 これらの他の種類を使用して、ファイルをさらに操作できます。 詳細については、Open、OpenRead、OpenText、CreateText、Createなどの特定の FileInfo メンバーを参照してください。
既定では、新しいファイルへの完全な読み取り/書き込みアクセス権はすべてのユーザーに付与されます。
次の表では、さまざまな FileInfo メソッドの動作をカスタマイズするために使用される列挙体について説明します。
列挙 | 形容 |
---|---|
FileAccess | ファイルへの読み取りと書き込みのアクセスを指定します。 |
FileShare | 既に使用されているファイルに対して許可されるアクセス レベルを指定します。 |
FileMode | 既存のファイルの内容を保持するか上書きするか、および既存のファイルを作成する要求で例外が発生するかどうかを指定します。 |
手記
パスを入力文字列として受け入れるメンバーでは、そのパスは整形式である必要があります。または例外が発生します。 たとえば、パスが完全修飾されていてもスペースで始まる場合、パスはクラスのメソッドでトリミングされません。 そのため、パスの形式が正しくないため、例外が発生します。 同様に、パスまたはパスの組み合わせを 2 回完全修飾することはできません。 たとえば、"c:\temp c:\windows" では、ほとんどの場合、例外も発生します。 パス文字列を受け入れるメソッドを使用する場合は、パスが整形式であることを確認します。
パスを受け入れるメンバーでは、パスはファイルまたはディレクトリのみを参照できます。 指定したパスは、サーバー名と共有名の相対パスまたは汎用名前付け規則 (UNC) パスを参照することもできます。 たとえば、次のすべてのパスを指定できます。
C# では "c:\\MyDir\\MyFile.txt"、Visual Basic では "c:\MyDir\MyFile.txt" です。
C# では "c:\\MyDir"、Visual Basic では "c:\MyDir" です。
C# では "MyDir\\MySubdir"、Visual Basic では "MyDir\MySubDir" です。
C# では "\\\MyServer\\MyShare"、Visual Basic では "\\MyServer\MyShare" です。
FileInfo クラスには、ファイルに関する情報を取得できる次のプロパティが用意されています。 各プロパティの使用方法の例については、プロパティ ページを参照してください。
Directory プロパティは、ファイルの親ディレクトリを表すオブジェクトを取得します。
DirectoryName プロパティは、ファイルの親ディレクトリの完全なパスを取得します。
Exists プロパティは、ファイルを操作する前にファイルの存在を確認します。
IsReadOnly プロパティは、ファイルを変更できるかどうかを示す値を取得または設定します。
Length は、ファイルのサイズを取得します。
Name は、ファイルの名前を取得します。
コンストラクター
FileInfo(String) |
ファイル パスのラッパーとして機能する、FileInfo クラスの新しいインスタンスを初期化します。 |
フィールド
FullPath |
ディレクトリまたはファイルの完全修飾パスを表します。 (継承元 FileSystemInfo) |
OriginalPath |
相対パスと絶対パスのどちらを指定したかに関係なく、ユーザーが最初に指定したパス。 (継承元 FileSystemInfo) |
プロパティ
Attributes |
現在のファイルまたはディレクトリの属性を取得または設定します。 (継承元 FileSystemInfo) |
CreationTime |
現在のファイルまたはディレクトリの作成時刻を取得または設定します。 (継承元 FileSystemInfo) |
CreationTimeUtc |
現在のファイルまたはディレクトリの作成時刻を協定世界時 (UTC) で取得または設定します。 (継承元 FileSystemInfo) |
Directory |
親ディレクトリのインスタンスを取得します。 |
DirectoryName |
ディレクトリの完全なパスを表す文字列を取得します。 |
Exists |
ファイルが存在するかどうかを示す値を取得します。 |
Extension |
ファイル名全体であっても先頭のドット |
FullName |
ディレクトリまたはファイルの完全なパスを取得します。 (継承元 FileSystemInfo) |
IsReadOnly |
現在のファイルが読み取り専用かどうかを決定する値を取得または設定します。 |
LastAccessTime |
現在のファイルまたはディレクトリが最後にアクセスされた時刻を取得または設定します。 (継承元 FileSystemInfo) |
LastAccessTimeUtc |
現在のファイルまたはディレクトリが最後にアクセスされた時刻を協定世界時 (UTC) で取得または設定します。 (継承元 FileSystemInfo) |
LastWriteTime |
現在のファイルまたはディレクトリが最後に書き込まれた時刻を取得または設定します。 (継承元 FileSystemInfo) |
LastWriteTimeUtc |
現在のファイルまたはディレクトリが最後に書き込まれた時刻を協定世界時 (UTC) で取得または設定します。 (継承元 FileSystemInfo) |
Length |
現在のファイルのサイズ (バイト単位) を取得します。 |
LinkTarget |
FullNameにあるリンクのターゲット パスを取得します。この FileSystemInfo インスタンスがリンクを表していない場合は |
Name |
ファイルの名前を取得します。 |
UnixFileMode |
現在のファイルまたはディレクトリの Unix ファイル モードを取得または設定します。 (継承元 FileSystemInfo) |
メソッド
AppendText() |
FileInfoのこのインスタンスによって表されるファイルにテキストを追加する StreamWriter を作成します。 |
CopyTo(String) |
既存のファイルを新しいファイルにコピーし、既存のファイルの上書きを禁止します。 |
CopyTo(String, Boolean) |
既存のファイルを新しいファイルにコピーし、既存のファイルを上書きできるようにします。 |
Create() |
ファイルを作成します。 |
CreateAsSymbolicLink(String) |
指定した |
CreateObjRef(Type) |
リモート オブジェクトとの通信に使用されるプロキシの生成に必要なすべての関連情報を含むオブジェクトを作成します。 (継承元 MarshalByRefObject) |
CreateText() |
新しいテキスト ファイルを書き込む StreamWriter を作成します。 |
Decrypt() |
Encrypt() メソッドを使用して、現在のアカウントによって暗号化されたファイルを復号化します。 |
Delete() |
ファイルを完全に削除します。 |
Encrypt() |
ファイルを暗号化して、ファイルの暗号化に使用したアカウントのみが暗号化を解除できるようにします。 |
Equals(Object) |
指定したオブジェクトが現在のオブジェクトと等しいかどうかを判断します。 (継承元 Object) |
GetAccessControl() |
現在の FileInfo オブジェクトによって記述されたファイルのアクセス制御リスト (ACL) エントリをカプセル化する FileSecurity オブジェクトを取得します。 |
GetAccessControl(AccessControlSections) |
現在の FileInfo オブジェクトによって記述されたファイルの指定した種類のアクセス制御リスト (ACL) エントリをカプセル化する FileSecurity オブジェクトを取得します。 |
GetHashCode() |
既定のハッシュ関数として機能します。 (継承元 Object) |
GetLifetimeService() |
古い.
このインスタンスの有効期間ポリシーを制御する現在の有効期間サービス オブジェクトを取得します。 (継承元 MarshalByRefObject) |
GetObjectData(SerializationInfo, StreamingContext) |
古い.
ファイル名と追加の例外情報を使用して、SerializationInfo オブジェクトを設定します。 (継承元 FileSystemInfo) |
GetType() |
現在のインスタンスの Type を取得します。 (継承元 Object) |
InitializeLifetimeService() |
古い.
このインスタンスの有効期間ポリシーを制御する有効期間サービス オブジェクトを取得します。 (継承元 MarshalByRefObject) |
MemberwiseClone() |
現在の Objectの簡易コピーを作成します。 (継承元 Object) |
MemberwiseClone(Boolean) |
現在の MarshalByRefObject オブジェクトの簡易コピーを作成します。 (継承元 MarshalByRefObject) |
MoveTo(String) |
指定したファイルを新しい場所に移動し、新しいファイル名を指定するオプションを指定します。 |
MoveTo(String, Boolean) |
指定したファイルを新しい場所に移動し、新しいファイル名を指定するオプションを指定し、コピー先ファイルが既に存在する場合は上書きします。 |
Open(FileMode) |
指定したモードでファイルを開きます。 |
Open(FileMode, FileAccess) |
読み取り、書き込み、または読み取り/書き込みアクセスを使用して、指定したモードでファイルを開きます。 |
Open(FileMode, FileAccess, FileShare) |
読み取り、書き込み、または読み取り/書き込みアクセスと、指定した共有オプションを使用して、指定したモードでファイルを開きます。 |
Open(FileStreamOptions) |
指定した作成モード、読み取り/書き込み、および共有アクセス許可を使用して、FileStream クラスの新しいインスタンスを初期化します。他の FileStream へのアクセスは、同じファイル、バッファー サイズ、追加のファイル オプション、および割り当てサイズに対して持つことができます。 |
OpenRead() |
読み取り専用 FileStreamを作成します。 |
OpenText() |
既存のテキスト ファイルから読み取る UTF8 エンコードを使用して StreamReader を作成します。 |
OpenWrite() |
書き込み専用 FileStreamを作成します。 |
Refresh() |
オブジェクトの状態を更新します。 (継承元 FileSystemInfo) |
Replace(String, String) |
指定したファイルの内容を、現在の FileInfo オブジェクトによって記述されたファイルに置き換え、元のファイルを削除し、置き換えられたファイルのバックアップを作成します。 |
Replace(String, String, Boolean) |
指定したファイルの内容を、現在の FileInfo オブジェクトによって記述されたファイルに置き換え、元のファイルを削除し、置き換えられたファイルのバックアップを作成します。 また、マージ エラーを無視するかどうかを指定します。 |
ResolveLinkTarget(Boolean) |
指定したリンクのターゲットを取得します。 (継承元 FileSystemInfo) |
SetAccessControl(FileSecurity) |
FileSecurity オブジェクトによって記述されたアクセス制御リスト (ACL) エントリを、現在の FileInfo オブジェクトによって記述されたファイルに適用します。 |
ToString() |
FileInfo コンストラクターに渡された元のパスを返します。 完全なパスまたはファイル名には、FullName または Name プロパティを使用します。 |
ToString() |
元のパスを返します。 完全なパスまたはファイル/ディレクトリ名には、FullName プロパティまたは Name プロパティを使用します。 (継承元 FileSystemInfo) |
拡張メソッド
Create(FileInfo, FileMode, FileSystemRights, FileShare, Int32, FileOptions, FileSecurity) |
新しいファイル ストリームを作成し、指定されたプロパティとセキュリティ設定を使用して作成されるようにします。 |
GetAccessControl(FileInfo) |
ファイルのセキュリティ情報を返します。 |
GetAccessControl(FileInfo, AccessControlSections) |
ファイルのセキュリティ情報を返します。 |
SetAccessControl(FileInfo, FileSecurity) |
既存のファイルのセキュリティ属性を変更します。 |
適用対象
こちらもご覧ください
- FileSystemWatcher
- DriveInfo
- ファイルおよびストリーム I/O
- 方法: ファイル からテキストを読み取る
- 方法: ファイル にテキストを書き込む
- 方法: 新しく作成されたデータ ファイルの読み取りと書き込み
.NET