FileInfo FileInfo FileInfo FileInfo Class

定義

ファイルを作成、コピー、削除、移動、および開くためのプロパティおよびインスタンス メソッドを提供し、FileStream オブジェクトを作成できるようにします。Provides properties and instance methods for the creation, copying, deletion, moving, and opening of files, and aids in the creation of FileStream objects. このクラスは継承できません。This class cannot be inherited.

public ref class FileInfo sealed : System::IO::FileSystemInfo
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public sealed class FileInfo : System.IO.FileSystemInfo
type FileInfo = class
    inherit FileSystemInfo
Public NotInheritable Class FileInfo
Inherits FileSystemInfo
継承
属性

FileInfoクラスの主なメンバーの一部を次の例に示します。The following example demonstrates some of the main members of the FileInfo class.

プロパティが最初に取得されるFileInfoと、 Refreshはメソッドを呼び出し、ファイルに関する情報をキャッシュします。When the properties are first retrieved, FileInfo calls the Refresh method and caches information about the file. その後の呼び出しでは、 Refreshを呼び出して情報の最新のコピーを取得する必要があります。On subsequent calls, you must call Refresh to get the latest copy of the information.

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

この例では、次のような出力が生成されます。This example produces output similar to the following.

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コピー、移動、名前の変更、作成、開く、削除、追加などの一般的な操作には、クラスを使用します。Use the FileInfo class for typical operations such as copying, moving, renaming, creating, opening, deleting, and appending to files.

同じファイルに対して複数の操作を実行する場合は、セキュリティチェックが必ずFileInfoしも必要ではないため、 Fileクラスの対応する静的メソッドの代わりにインスタンスメソッドを使用する方が効率的です。If you are performing multiple operations on the same file, it can be more efficient to use FileInfo instance methods instead of the corresponding static methods of the File class, because a security check will not always be necessary.

多くのメソッドFileInfoは、ファイルを作成または開くときに他の i/o 型を返します。Many of the FileInfo methods return other I/O types when you create or open files. これらの他の型を使用して、ファイルをさらに操作することができます。You can use these other types to further manipulate a file. 詳細については、 FileInfo 「」、「」、「」 Create、「」、「」などの特定のメンバー OpenText Open OpenRead CreateTextを参照してください。For more information, see specific FileInfo members such as Open, OpenRead, OpenText, CreateText, or Create.

既定では、すべてのユーザーに対して、新しいファイルへの完全な読み取り/書き込みアクセス権が付与されます。By default, full read/write access to new files is granted to all users.

次の表では、さまざまなFileInfoメソッドの動作をカスタマイズするために使用される列挙体について説明します。The following table describes the enumerations that are used to customize the behavior of various FileInfo methods.

列挙Enumeration 説明Description
FileAccess ファイルへの読み取りおよび書き込みアクセスを指定します。Specifies read and write access to a file.
FileShare 既に使用されているファイルに許可するアクセスのレベルを指定します。Specifies the level of access permitted for a file that is already in use.
FileMode 既存のファイルの内容を保持するか上書きするかを指定します。また、既存のファイルを作成する要求によって例外が発生するかどうかを指定します。Specifies whether the contents of an existing file are preserved or overwritten, and whether requests to create an existing file cause an exception.

注意

パスを入力文字列として受け取るメンバーでは、そのパスは適切な形式である必要があります。そうでない場合、例外が発生します。In members that accept a path as an input string, that path must be well-formed or an exception is raised. たとえば、パスが完全修飾されていても、スペースで始まる場合は、クラスのメソッドでパスがトリムされません。For example, if a path is fully qualified but begins with a space, the path is not trimmed in methods of the class. そのため、パスの形式が正しくないため、例外が発生します。Therefore, the path is malformed and an exception is raised. 同様に、パスまたはパスの組み合わせを2回完全に修飾することはできません。Similarly, a path or a combination of paths cannot be fully qualified twice. たとえば、"c:\temp c:\windows" は、ほとんどの場合に例外を発生させます。For example, "c:\temp c:\windows" also raises an exception in most cases. パス文字列を受け取るメソッドを使用する場合は、パスが適切な形式であることを確認します。Ensure that your paths are well-formed when using methods that accept a path string.

パスを受け入れるメンバーでは、ファイルまたはディレクトリのみを参照できます。In members that accept a path, the path can refer to a file or just a directory. 指定されたパスは、サーバーと共有名の相対パスまたは UNC (汎用名前付け規則) パスを参照することもできます。The specified path can also refer to a relative path or a Universal Naming Convention (UNC) path for a server and share name. たとえば、次のすべてが許容されるパスです。For example, all the following are acceptable paths:

  • Visual Basic の "\c\: \MyDir \MyFile.txt C#" または "c:\MyDir\MyFile.txt"。"c:\\MyDir\\MyFile.txt" in C#, or "c:\MyDir\MyFile.txt" in Visual Basic.

  • Visual Basic の "\c: \MyDir C#" または "c:\MyDir"。"c:\\MyDir" in C#, or "c:\MyDir" in Visual Basic.

  • Visual Basic の "\mydir \MySubdir C#"、または "MyDir\MySubDir"。"MyDir\\MySubdir" in C#, or "MyDir\MySubDir" in Visual Basic.

  • \ C#Visual Basic の "\MyServer\\MyShare" または\"「\myserver\myshare」"。\\"\\\\MyServer\\MyShare" in C#, or "\\MyServer\MyShare" in Visual Basic.

クラスFileInfoには、ファイルに関する情報を取得できるようにする次のプロパティが用意されています。The FileInfo class provides the following properties that enable you to retrieve information about a file. 各プロパティの使用方法の例については、「プロパティページ」を参照してください。For an example of how to use each property, see the property pages.

  • プロパティDirectoryは、ファイルの親ディレクトリを表すオブジェクトを取得します。The Directory property retrieves an object that represents the parent directory of a file.

  • プロパティDirectoryNameは、ファイルの親ディレクトリの完全なパスを取得します。The DirectoryName property retrieves the full path of the parent directory of a file.

  • プロパティExistsは、ファイルが操作される前にファイルが存在するかどうかを確認します。The Exists property checks for the presence of a file before operating on it.

  • プロパティIsReadOnlyは、ファイルを変更できるかどうかを示す値を取得または設定します。The IsReadOnly property retrieves or sets a value that specifies whether a file can be modified.

  • Length 、ファイルのサイズを取得します。The Length retrieves the size of a file.

  • Name 、ファイルの名前を取得します。The Name retrieves the name of a file.

コンストラクター

FileInfo(String) FileInfo(String) FileInfo(String) FileInfo(String)

ファイル パスのラッパーとして機能する、FileInfo クラスの新しいインスタンスを初期化します。Initializes a new instance of the FileInfo class, which acts as a wrapper for a file path.

プロパティ

Attributes Attributes Attributes Attributes

現在のファイルまたはディレクトリの属性を取得または設定します。Gets or sets the attributes for the current file or directory.

(Inherited from FileSystemInfo)
CreationTime CreationTime CreationTime CreationTime

現在のファイルまたはディレクトリの作成日時を取得または設定します。Gets or sets the creation time of the current file or directory.

(Inherited from FileSystemInfo)
CreationTimeUtc CreationTimeUtc CreationTimeUtc CreationTimeUtc

現在のファイルまたはディレクトリの作成日時を世界協定時刻 (UTC) で取得または設定します。Gets or sets the creation time, in coordinated universal time (UTC), of the current file or directory.

(Inherited from FileSystemInfo)
Directory Directory Directory Directory

親ディレクトリのインスタンスを取得します。Gets an instance of the parent directory.

DirectoryName DirectoryName DirectoryName DirectoryName

ディレクトリの絶対パスを表す文字列を取得します。Gets a string representing the directory's full path.

Exists Exists Exists Exists

ファイルが存在するかどうかを示す値を取得します。Gets a value indicating whether a file exists.

Extension Extension Extension Extension

ファイルの拡張子部分を表す文字列を取得します。Gets the string representing the extension part of the file.

(Inherited from FileSystemInfo)
FullName FullName FullName FullName

ディレクトリまたはファイルの絶対パスを取得します。Gets the full path of the directory or file.

(Inherited from FileSystemInfo)
IsReadOnly IsReadOnly IsReadOnly IsReadOnly

現在のファイルが読み取り専用であるかどうかを判断する値を取得または設定します。Gets or sets a value that determines if the current file is read only.

LastAccessTime LastAccessTime LastAccessTime LastAccessTime

現在のファイルまたはディレクトリに最後にアクセスした時刻を取得または設定します。Gets or sets the time the current file or directory was last accessed.

(Inherited from FileSystemInfo)
LastAccessTimeUtc LastAccessTimeUtc LastAccessTimeUtc LastAccessTimeUtc

現在のファイルまたはディレクトリに最後にアクセスした時刻を世界協定時刻 (UTC) で取得または設定します。Gets or sets the time, in coordinated universal time (UTC), that the current file or directory was last accessed.

(Inherited from FileSystemInfo)
LastWriteTime LastWriteTime LastWriteTime LastWriteTime

現在のファイルまたはディレクトリに最後に書き込みが行われた時刻を取得または設定します。Gets or sets the time when the current file or directory was last written to.

(Inherited from FileSystemInfo)
LastWriteTimeUtc LastWriteTimeUtc LastWriteTimeUtc LastWriteTimeUtc

現在のファイルまたはディレクトリに最後に書き込みが行われた時刻を世界協定時刻 (UTC) で取得または設定します。Gets or sets the time, in coordinated universal time (UTC), when the current file or directory was last written to.

(Inherited from FileSystemInfo)
Length Length Length Length

現在のファイルのサイズをバイト単位で取得します。Gets the size, in bytes, of the current file.

Name Name Name Name

ファイルの名前を取得します。Gets the name of the file.

メソッド

AppendText() AppendText() AppendText() AppendText()

FileInfoのインスタンスが表すファイルの末尾にテキストを追加するStreamWriterを作成します。Creates a StreamWriter that appends text to the file represented by this instance of the FileInfo.

CopyTo(String) CopyTo(String) CopyTo(String) CopyTo(String)

既存のファイルを上書きできないようにして、既存のファイルを新しいファイルにコピーします。Copies an existing file to a new file, disallowing the overwriting of an existing file.

CopyTo(String, Boolean) CopyTo(String, Boolean) CopyTo(String, Boolean) CopyTo(String, Boolean)

既存のファイルを上書きできるようにして、既存のファイルを新しいファイルにコピーします。Copies an existing file to a new file, allowing the overwriting of an existing file.

Create() Create() Create() Create()

ファイルを作成します。Creates a file.

CreateObjRef(Type) CreateObjRef(Type) CreateObjRef(Type) CreateObjRef(Type)

リモート オブジェクトとの通信に使用するプロキシの生成に必要な情報をすべて格納しているオブジェクトを作成します。Creates an object that contains all the relevant information required to generate a proxy used to communicate with a remote object.

(Inherited from MarshalByRefObject)
CreateText() CreateText() CreateText() CreateText()

新しいテキスト ファイルに書き込みを実行する StreamWriter を作成します。Creates a StreamWriter that writes a new text file.

Decrypt() Decrypt() Decrypt() Decrypt()

Encrypt() メソッドを使用して現在のアカウントによって暗号化されたファイルを復号化します。Decrypts a file that was encrypted by the current account using the Encrypt() method.

Delete() Delete() Delete() Delete()

ファイルを完全に削除します。Permanently deletes a file.

Encrypt() Encrypt() Encrypt() Encrypt()

ファイルを暗号化し、そのファイルの暗号化に使用したアカウントだけが暗号化の解除をできるようにします。Encrypts a file so that only the account used to encrypt the file can decrypt it.

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

指定したオブジェクトが、現在のオブジェクトと等しいかどうかを判断します。Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetAccessControl() GetAccessControl() GetAccessControl() GetAccessControl()

現在の FileSecurity オブジェクトが示すファイルのアクセス制御リスト (ACL) エントリをカプセル化する FileInfo オブジェクトを取得します。Gets a FileSecurity object that encapsulates the access control list (ACL) entries for the file described by the current FileInfo object.

GetAccessControl(AccessControlSections) GetAccessControl(AccessControlSections) GetAccessControl(AccessControlSections) GetAccessControl(AccessControlSections)

現在の FileSecurity オブジェクトが示すファイルの、指定した種類のアクセス制御リスト (ACL) エントリをカプセル化する FileInfo オブジェクトを取得します。Gets a FileSecurity object that encapsulates the specified type of access control list (ACL) entries for the file described by the current FileInfo object.

GetHashCode() GetHashCode() GetHashCode() GetHashCode()

既定のハッシュ関数として機能します。Serves as the default hash function.

(Inherited from Object)
GetLifetimeService() GetLifetimeService() GetLifetimeService() GetLifetimeService()

対象のインスタンスの有効期間ポリシーを制御する、現在の有効期間サービス オブジェクトを取得します。Retrieves the current lifetime service object that controls the lifetime policy for this instance.

(Inherited from MarshalByRefObject)
GetObjectData(SerializationInfo, StreamingContext) GetObjectData(SerializationInfo, StreamingContext) GetObjectData(SerializationInfo, StreamingContext) GetObjectData(SerializationInfo, StreamingContext)

ファイル名と追加の例外情報を使用して SerializationInfo オブジェクトを設定します。Sets the SerializationInfo object with the file name and additional exception information.

(Inherited from FileSystemInfo)
GetType() GetType() GetType() GetType()

現在のインスタンスの Type を取得します。Gets the Type of the current instance.

(Inherited from Object)
InitializeLifetimeService() InitializeLifetimeService() InitializeLifetimeService() InitializeLifetimeService()

このインスタンスの有効期間ポリシーを制御する有効期間サービス オブジェクトを取得します。Obtains a lifetime service object to control the lifetime policy for this instance.

(Inherited from MarshalByRefObject)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

(Inherited from Object)
MemberwiseClone(Boolean) MemberwiseClone(Boolean) MemberwiseClone(Boolean) MemberwiseClone(Boolean)

現在の MarshalByRefObject オブジェクトの簡易コピーを作成します。Creates a shallow copy of the current MarshalByRefObject object.

(Inherited from MarshalByRefObject)
MoveTo(String) MoveTo(String) MoveTo(String) MoveTo(String)

指定したファイルを新しい場所に移動します。オプションで新しいファイル名を指定することもできます。Moves a specified file to a new location, providing the option to specify a new file name.

MoveTo(String, Boolean) MoveTo(String, Boolean) MoveTo(String, Boolean) MoveTo(String, Boolean)

指定したファイルを新しい場所に移動します。新しいファイル名を指定し、既に存在する場合は、対象ファイルを上書きするオプションが用意されています。Moves a specified file to a new location, providing the options to specify a new file name and to overwrite the destination file if it already exists.

Open(FileMode) Open(FileMode) Open(FileMode) Open(FileMode)

指定したモードでファイルを開きます。Opens a file in the specified mode.

Open(FileMode, FileAccess) Open(FileMode, FileAccess) Open(FileMode, FileAccess) Open(FileMode, FileAccess)

読み取り可、書き込み可、または読み書き込み可などのアクセス権を指定し、指定したモードでファイルを開きます。Opens a file in the specified mode with read, write, or read/write access.

Open(FileMode, FileAccess, FileShare) Open(FileMode, FileAccess, FileShare) Open(FileMode, FileAccess, FileShare) Open(FileMode, FileAccess, FileShare)

読み取り可、書き込み可、読み書き可などのアクセス権を指定し、指定したモードと共有オプションでファイルを開きます。Opens a file in the specified mode with read, write, or read/write access and the specified sharing option.

OpenRead() OpenRead() OpenRead() OpenRead()

読み取り専用の FileStream を作成します。Creates a read-only FileStream.

OpenText() OpenText() OpenText() OpenText()

既存のテキスト ファイルからの読み取りを行う、UTF8 エンコーディングの StreamReader を作成します。Creates a StreamReader with UTF8 encoding that reads from an existing text file.

OpenWrite() OpenWrite() OpenWrite() OpenWrite()

書き込み専用の FileStream を作成します。Creates a write-only FileStream.

Refresh() Refresh() Refresh() Refresh()

オブジェクトの状態を更新します。Refreshes the state of the object.

(Inherited from FileSystemInfo)
Replace(String, String) Replace(String, String) Replace(String, String) Replace(String, String)

指定したファイルの内容を現在の FileInfo オブジェクトが示すファイルと置き換え、元のファイルを削除し、置き換えられたファイルのバックアップを作成します。Replaces the contents of a specified file with the file described by the current FileInfo object, deleting the original file, and creating a backup of the replaced file.

Replace(String, String, Boolean) Replace(String, String, Boolean) Replace(String, String, Boolean) Replace(String, String, Boolean)

指定したファイルの内容を現在の FileInfo オブジェクトが示すファイルと置き換え、元のファイルを削除し、置き換えられたファイルのバックアップを作成します。Replaces the contents of a specified file with the file described by the current FileInfo object, deleting the original file, and creating a backup of the replaced file. また、マージ エラーを無視するかどうかも指定します。Also specifies whether to ignore merge errors.

SetAccessControl(FileSecurity) SetAccessControl(FileSecurity) SetAccessControl(FileSecurity) SetAccessControl(FileSecurity)

FileSecurity オブジェクトが示すアクセス制御リスト (ACL) エントリを、現在の FileInfo オブジェクトが示すファイルに適用します。Applies access control list (ACL) entries described by a FileSecurity object to the file described by the current FileInfo object.

ToString() ToString() ToString() ToString()

このパスを文字列として返します。Returns the path as a string. 完全なパスには Name プロパティを使用します。Use the Name property for the full path.

フィールド

FullPath FullPath FullPath FullPath

ディレクトリまたはファイルの絶対パスを表します。Represents the fully qualified path of the directory or file.

(Inherited from FileSystemInfo)
OriginalPath OriginalPath OriginalPath OriginalPath

パスは、以前にユーザーが相対パスまたは絶対パスで指定したものです。The path originally specified by the user, whether relative or absolute.

(Inherited from FileSystemInfo)

拡張メソッド

GetAccessControl(FileInfo) GetAccessControl(FileInfo) GetAccessControl(FileInfo) GetAccessControl(FileInfo)
GetAccessControl(FileInfo, AccessControlSections) GetAccessControl(FileInfo, AccessControlSections) GetAccessControl(FileInfo, AccessControlSections) GetAccessControl(FileInfo, AccessControlSections)
SetAccessControl(FileInfo, FileSecurity) SetAccessControl(FileInfo, FileSecurity) SetAccessControl(FileInfo, FileSecurity) SetAccessControl(FileInfo, FileSecurity)

適用対象

こちらもご覧ください