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 、ファイルのコピー、移動、名前変更、作成、開く、削除、ファイルへの追加などの一般的な操作に使用します。

同じファイルに対して複数の操作を実行する場合、セキュリティ チェックが常に必要になるとは限らないため、クラスの対応する静的メソッドではなくインスタンス メソッド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

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

(継承元 FileSystemInfo)
FullName

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

(継承元 FileSystemInfo)
IsReadOnly

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

LastAccessTime

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

(継承元 FileSystemInfo)
LastAccessTimeUtc

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

(継承元 FileSystemInfo)
LastWriteTime

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

(継承元 FileSystemInfo)
LastWriteTimeUtc

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

(継承元 FileSystemInfo)
Length

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

LinkTarget

にある FullNameリンクのターゲット パスを取得します。この null インスタンスが FileSystemInfo リンクを表していない場合は を取得します。

(継承元 FileSystemInfo)
Name

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

UnixFileMode

現在のファイルまたはディレクトリの Unix ファイル モードを取得または設定します。

(継承元 FileSystemInfo)

メソッド

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()

FileInfo コンストラクターに渡された元のパスを返します。 FullName完全なパスまたはファイル名には、 または Name プロパティを使用します。

ToString()

元のパスを返します。 完全なパスの FullName または Name のプロパティ、またはファイル名またはディレクトリ名を使用します。

(継承元 FileSystemInfo)

拡張メソッド

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

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

GetAccessControl(FileInfo)

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

GetAccessControl(FileInfo, AccessControlSections)

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

SetAccessControl(FileInfo, FileSecurity)

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

適用対象

こちらもご覧ください