FileInfo クラス

定義

ファイルを作成、コピー、削除、移動、および開くためのプロパティおよびインスタンス メソッドを提供し、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 コピー、移動、名前の変更、作成、開く、削除、追加などの一般的な操作には、クラスを使用します。

同じファイルに対して複数の操作を実行する場合は、 FileInfo セキュリティチェックが必ずしも必要ではないため、クラスの対応する静的メソッドの代わりにインスタンスメソッドを使用する方が効率的 File です。

多くのメソッドは、 FileInfo ファイルを作成または開くときに他の i/o 型を返します。 これらの他の型を使用して、ファイルをさらに操作することができます。 詳細については、「」、「」、「」、「」、「」などの特定のメンバーを参照してください FileInfo Open OpenRead OpenText CreateText 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

先頭のドット を含む、ファイル名の拡張子部分を取得します ファイル名全体である場合でも、拡張子が存在しない場合は空の文字列です。

(継承元 FileSystemInfo)
FullName

ディレクトリまたはファイルの絶対パスを取得します。

(継承元 FileSystemInfo)
IsReadOnly

現在のファイルが読み取り専用であるかどうかを判断する値を取得または設定します。

LastAccessTime

現在のファイルまたはディレクトリに最後にアクセスした時刻を取得または設定します。

(継承元 FileSystemInfo)
LastAccessTimeUtc

現在のファイルまたはディレクトリに最後にアクセスした時刻を世界協定時刻 (UTC) で取得または設定します。

(継承元 FileSystemInfo)
LastWriteTime

現在のファイルまたはディレクトリに最後に書き込みが行われた時刻を取得または設定します。

(継承元 FileSystemInfo)
LastWriteTimeUtc

現在のファイルまたはディレクトリに最後に書き込みが行われた時刻を世界協定時刻 (UTC) で取得または設定します。

(継承元 FileSystemInfo)
Length

現在のファイルのサイズをバイト単位で取得します。

LinkTarget

この FileSystemInfo インスタンスがリンクを表している場合は、リンク先のパスを返します。 リンクがに存在しない場合、 FullName またはこのインスタンスがリンクを表していない場合、はを返し null ます。

(継承元 FileSystemInfo)
Name

ファイルの名前を取得します。

メソッド

AppendText()

FileInfoのインスタンスが表すファイルの末尾にテキストを追加するStreamWriterを作成します。

CopyTo(String)

既存のファイルを上書きできないようにして、既存のファイルを新しいファイルにコピーします。

CopyTo(String, Boolean)

既存のファイルを上書きできるようにして、既存のファイルを新しいファイルにコピーします。

Create()

ファイルを作成します。

CreateAsSymbolicLink(String)

指定した を指す に位置 FullName するシンボリック リンクを作成します pathToTarget

(継承元 FileSystemInfo)
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 プロパティを使用します。

拡張メソッド

Create(FileInfo, FileMode, FileSystemRights, FileShare, Int32, FileOptions, FileSecurity)

新しいファイル ストリームを作成します。作成時は、指定されたプロパティおよびセキュリティ設定を使用していることを確認します。

GetAccessControl(FileInfo)

ファイルのセキュリティ情報を返します。

GetAccessControl(FileInfo, AccessControlSections)

ファイルのセキュリティ情報を返します。

SetAccessControl(FileInfo, FileSecurity)

既存のファイルのセキュリティ属性を変更します。

適用対象

こちらもご覧ください