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 型を返します。 これらの他の型を使用して、ファイルをさらに操作できます。 詳細については、 などのOpenTextCreateTextOpenOpenRead特定FileInfoのメンバーに関するページをCreate参照してください。
既定では、新しいファイルへの完全な読み取り/書き込みアクセス権はすべてのユーザーに付与されます。
次の表では、さまざまな 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リンクのターゲット パスを取得します。この |
Name |
ファイルの名前を取得します。 |
UnixFileMode |
現在のファイルまたはディレクトリの Unix ファイル モードを取得または設定します。 (継承元 FileSystemInfo) |
メソッド
AppendText() |
FileInfoのインスタンスが表すファイルの末尾にテキストを追加するStreamWriterを作成します。 |
CopyTo(String) |
既存のファイルを上書きできないようにして、既存のファイルを新しいファイルにコピーします。 |
CopyTo(String, Boolean) |
既存のファイルを上書きできるようにして、既存のファイルを新しいファイルにコピーします。 |
Create() |
ファイルを作成します。 |
CreateAsSymbolicLink(String) |
指定した を指す にある FullName シンボリック リンクを作成します |
CreateObjRef(Type) |
リモート オブジェクトとの通信に使用するプロキシの生成に必要な情報をすべて格納しているオブジェクトを作成します。 (継承元 MarshalByRefObject) |
CreateText() |
新しいテキスト ファイルに書き込みを実行する StreamWriter を作成します。 |
Decrypt() |
Encrypt() メソッドを使用して現在のアカウントによって暗号化されたファイルを復号化します。 |
Delete() |
ファイルを完全に削除します。 |
Encrypt() |
ファイルを暗号化し、そのファイルの暗号化に使用したアカウントだけが暗号化の解除をできるようにします。 |
Equals(Object) |
指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。 (継承元 Object) |
GetAccessControl() |
現在の FileSecurity オブジェクトが示すファイルのアクセス制御リスト (ACL) エントリをカプセル化する FileInfo オブジェクトを取得します。 |
GetAccessControl(AccessControlSections) |
現在の FileSecurity オブジェクトが示すファイルの、指定した種類のアクセス制御リスト (ACL) エントリをカプセル化する FileInfo オブジェクトを取得します。 |
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() |
このパスを文字列として返します。 完全なパスには Name プロパティを使用します。 |
ToString() |
元のパスを返します。 完全なパスの FullName または Name のプロパティ、またはファイル名またはディレクトリ名を使用します。 (継承元 FileSystemInfo) |
拡張メソッド
Create(FileInfo, FileMode, FileSystemRights, FileShare, Int32, FileOptions, FileSecurity) |
新しいファイル ストリームを作成します。作成時は、指定されたプロパティおよびセキュリティ設定を使用していることを確認します。 |
GetAccessControl(FileInfo) |
ファイルのセキュリティ情報を返します。 |
GetAccessControl(FileInfo, AccessControlSections) |
ファイルのセキュリティ情報を返します。 |
SetAccessControl(FileInfo, FileSecurity) |
既存のファイルのセキュリティ属性を変更します。 |