FileDialog クラス


ユーザーがファイルを選択するダイアログ ボックスを表示します。Displays a dialog box from which the user can select a file.

public ref class FileDialog abstract : System::Windows::Forms::CommonDialog
public abstract class FileDialog : System.Windows.Forms.CommonDialog
type FileDialog = class
    inherit CommonDialog
Public MustInherit Class FileDialog
Inherits CommonDialog

次のコード例では、FileDialogOpenFileDialog 実装を使用し、プロパティの作成、設定、およびダイアログボックスの表示について説明します。The following code example uses the OpenFileDialog implementation of FileDialog and illustrates creating, setting of properties, and showing the dialog box. この例では、ShowDialog メソッドを使用してダイアログボックスを表示し、DialogResultを返します。The example uses the ShowDialog method to display the dialog box and return the DialogResult. この例では、フォームに Button が配置され、System.IO 名前空間が追加されている必要があります。The example requires a form with a Button placed on it and the System.IO namespace added to it.

   void button1_Click( Object^ /*sender*/, System::EventArgs^ /*e*/ )
      Stream^ myStream;
      OpenFileDialog^ openFileDialog1 = gcnew OpenFileDialog;

      openFileDialog1->InitialDirectory = "c:\\";
      openFileDialog1->Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*";
      openFileDialog1->FilterIndex = 2;
      openFileDialog1->RestoreDirectory = true;

      if ( openFileDialog1->ShowDialog() == System::Windows::Forms::DialogResult::OK )
         if ( (myStream = openFileDialog1->OpenFile()) != nullptr )
            // Insert code to read the stream here.
var fileContent = string.Empty;
var filePath = string.Empty;

using (OpenFileDialog openFileDialog = new OpenFileDialog())
    openFileDialog.InitialDirectory = "c:\\";
    openFileDialog.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*";
    openFileDialog.FilterIndex = 2;
    openFileDialog.RestoreDirectory = true;

    if (openFileDialog.ShowDialog() == DialogResult.OK)
        //Get the path of specified file
        filePath = openFileDialog.FileName;

        //Read the contents of the file into a stream
        var fileStream = openFileDialog.OpenFile();

        using (StreamReader reader = new StreamReader(fileStream))
            fileContent = reader.ReadToEnd();

MessageBox.Show(fileContent, "File Content at path: " + filePath, MessageBoxButtons.OK);
Private Sub button1_Click(ByVal sender As Object, ByVal e As System.EventArgs)
    Dim myStream As Stream = Nothing
    Dim openFileDialog1 As New OpenFileDialog()

    openFileDialog1.InitialDirectory = "c:\"
    openFileDialog1.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*"
    openFileDialog1.FilterIndex = 2
    openFileDialog1.RestoreDirectory = True

    If openFileDialog1.ShowDialog() = System.Windows.Forms.DialogResult.OK Then
            myStream = openFileDialog1.OpenFile()
            If (myStream IsNot Nothing) Then
                ' Insert code to read the stream here.
            End If
        Catch Ex As Exception
            MessageBox.Show("Cannot read file from disk. Original error: " & Ex.Message)
            ' Check this again, since we need to make sure we didn't throw an exception on open.
            If (myStream IsNot Nothing) Then
            End If
        End Try
    End If
End Sub


FileDialog は、OpenFileDialog クラスと SaveFileDialog クラスの一般的な動作を含む抽象クラスです。FileDialog is an abstract class that contains common behavior for the OpenFileDialog and SaveFileDialog classes. 直接使用するためのものではありませんが、これら2つのクラスに共通の動作が含まれています。It is not intended to be used directly but contains common behavior for those two classes. FileDialogのインスタンスを作成することはできません。You cannot create an instance of FileDialog. クラスは public として宣言されていますが、内部抽象メソッドが含まれているため、このクラスから継承することはできません。Although the class is declared public, you cannot inherit from it, as it contains internal abstract methods. ファイルを選択または保存するためのダイアログボックスを作成するには、OpenFileDialog または SaveFileDialogを使用します。To create a dialog box to select or save a file, use OpenFileDialog or SaveFileDialog.

FileDialog はモーダルダイアログボックスです。したがって、表示されると、ユーザーがファイルを選択するまで、アプリケーションの残りの部分はブロックされます。FileDialog is a modal dialog box; therefore, when shown, it blocks the rest of the application until the user has chosen a file. ダイアログボックスがモーダルで表示されている場合、ダイアログボックスのオブジェクト以外の入力 (キーボードまたはマウスクリック) は発生しません。When a dialog box is displayed modally, no input (keyboard or mouse click) can occur except to objects on the dialog box. プログラムは、呼び出し元のプログラムへの入力が発生する前に、ダイアログボックスを非表示にするか (通常は一部のユーザー操作に応答して) 閉じる必要があります。The program must hide or close the dialog box (usually in response to some user action) before input to the calling program can occur.


OpenFileDialogSaveFileDialogなどの FileDialogから派生したクラスを使用する場合は、絶対パスを含む文字列リテラルを使用しないようにしてください。When you use classes derived from FileDialog, such as OpenFileDialog and SaveFileDialog, avoid using string literals containing absolute paths. 代わりに、次の表で説明する1つ以上の方法を使用して、パスを動的に取得します。Instead, dynamically obtain the path using one or more of the techniques described in the following table.

ユーザーがファイルではなくフォルダーを選択できるようにするには、FolderBrowserDialogを使用します。If you want to enable users to select a folder instead of a file, use the FolderBrowserDialog.

アプリケーションの種類、アプリケーションに関連付けられたデータの保存方法、およびファイルシステムへのアクセスの理由に応じて、ディレクトリパスを作成するためのさまざまな方法が考えられます。Depending upon the type of application, how data associated with the application is stored, and the reason for accessing the file system, there are many possible ways in which you can create a directory path. 次の表は、パスを動的に作成する方法を示しています。The following table shows the techniques for creating paths dynamically.

パスまたはプログラムのカテゴリPath or program category 使用するクラスとメンバーClass and members to use
Program Files、マイドキュメント、Desktop などの標準の Windows パスStandard Windows paths, such as Program Files, MyDocuments, the Desktop and so on System.Environment クラスは、SystemDirectoryなどの静的メソッドを使用して、または Environment.SpecialFolder 列挙値のいずれかを使用して GetFolderPath メソッドを使用して、これらの最も完全なソースです。The System.Environment class is the most complete source for these, either through its static methods, such as SystemDirectory, or through the GetFolderPath method, using one of the Environment.SpecialFolder enumerated values.
現在のアプリケーションに関連するパスPaths related to the current application Application クラスには、StartupPathExecutablePathLocalUserAppDataPathCommonAppDataPathなどの特定のパスを取得するための静的メンバーがあります。The Application class has static members to obtain certain paths, such as StartupPath, ExecutablePath, LocalUserAppDataPath, and CommonAppDataPath.

System.IO.PathGetTempPath メソッドは、一時フォルダーのパスを返します。The GetTempPath method of the System.IO.Path returns the path of the temporary folder.

System.IO.Directory クラスの GetCurrentDirectory メソッドは、アプリケーションの現在実行中のディレクトリを返します。The GetCurrentDirectory method of the System.IO.Directory class returns the application's current executing directory.

DriveInfo クラスの RootDirectory プロパティは、指定されたドライブのルートディレクトリを表します。The RootDirectory property of the DriveInfo class represents the specified drive's root directory.
アプリケーション設定として格納されるパスPaths stored as application settings ApplicationSettingsBaseから派生したラッパークラスの対応するアプリケーション設定プロパティにアクセスします。Access the corresponding applications settings property of the wrapper class derived from ApplicationSettingsBase. 詳細については、「 Windows フォームのアプリケーション設定」を参照してください。For more information, see Application Settings for Windows Forms.
レジストリストレージRegistry storage 一部のアプリケーションでは、ディレクトリ情報がレジストリに格納されます。Some applications store directory information in the registry. Application クラスには、RegistryKey 値に解決される CommonAppDataPathLocalUserAppDataPath のプロパティがあります。The Application class has the CommonAppDataPath and LocalUserAppDataPath properties that resolve to a RegistryKey value.
ClickOnce アプリケーションClickOnce applications ClickOnce アプリケーションの場合は、ClickOnce データディレクトリへのポインターを返す UserAppDataPathなどの Application クラスメンバーを使用します。For ClickOnce applications, use Application class members such as UserAppDataPath, which will return a pointer to the ClickOnce data directory. 詳細については、ローカルへのアクセスとリモート データには、ClickOnce アプリケーション を参照してください。For more information, see Accessing Local and Remote Data in ClickOnce Applications.
国際対応アプリケーションInternational applications 国際対応アプリケーションの場合は、System.Resources.ResourceReader クラスを使用して、アプリケーションの文字列リソースから相対パス部分を取得します。For international applications, retrieve the relative path portion from a string resource in your application by using the System.Resources.ResourceReader class. グローバリゼーションとローカリゼーションの詳細については、「グローバリゼーションとローカリゼーション」を参照してください。For more information about globalization and localization, see the topic Globalization and Localization.

説明されている方法の1つ以上を使用して完全なパスを構築できることに注意してください。Notice that a full path may be built up using one or more of the described techniques. たとえば、GetFolderPath メソッドを使用してマイドキュメント フォルダーへのパスを取得した後、アプリケーション設定を使用して、相対サブディレクトリ部分を追加することができます。For example, the GetFolderPath method might be used to obtain the path to the MyDocuments folder, then an application setting may be used to add a relative subdirectory portion.

System.IO.Path クラスには、絶対パス文字列と相対パス文字列の操作を支援する静的メンバーが含まれています。一方、System.IO.File クラスと System.IO.Directory クラスには、ファイルとディレクトリを実際に操作する静的メンバーがあります。The System.IO.Path class contains static members to assist in manipulating absolute and relative path strings, whereas the System.IO.File and System.IO.Directory classes have static members that actually manipulate files and directories, respectively.


アプリケーションのユーザーが FileDialogのフォルダーを変更した場合、アプリケーションの現在の作業ディレクトリは、FileDialogで指定された場所に設定されます。If the user of your application changes the folder in the FileDialog, then the current working directory for your application is set to the location specified in the FileDialog. これを回避するには、RestoreDirectory プロパティを trueに設定します。To prevent this, set the RestoreDirectory property to true.



FileOk イベントを所有しています。Owns the FileOk event.



ユーザーが拡張子を指定しない場合、ダイアログ ボックスがファイル名に自動的に拡張子を付けるかどうかを示す値を取得または設定します。Gets or sets a value indicating whether the dialog box automatically adds an extension to a file name if the user omits the extension.


この FileDialog インスタンスを Windows VistaWindows Vista で実行する場合に、外観と動作を自動的にアップグレードするかどうかを示す値を取得または設定します。Gets or sets a value indicating whether this FileDialog instance should automatically upgrade appearance and behavior when running on Windows VistaWindows Vista.


コンポーネントがイベントを発生させることがきるかどうかを示す値を取得します。Gets a value indicating whether the component can raise an event.

(継承元 Component)

存在しないファイルの名前をユーザーが指定した場合に、ダイアログ ボックスが警告を表示するかどうかを示す値を取得または設定します。Gets or sets a value indicating whether the dialog box displays a warning if the user specifies a file name that does not exist.


存在しないパスをユーザーが指定したときに、ダイアログ ボックスに警告を表示するかどうかを示す値を取得または設定します。Gets or sets a value indicating whether the dialog box displays a warning if the user specifies a path that does not exist.


IContainer を格納している Component を取得します。Gets the IContainer that contains the Component.

(継承元 Component)

この FileDialog インスタンスに対するカスタム プレイスのコレクションを取得します。Gets the custom places collection for this FileDialog instance.


既定のファイル名の拡張子を取得または設定します。Gets or sets the default file name extension.


ダイアログ ボックスが、ショートカットで参照されたファイルの場所を返すかどうか、またはショートカットの場所 (.lnk) を返すかどうかを指定する値を取得または設定します。Gets or sets a value indicating whether the dialog box returns the location of the file referenced by the shortcut or whether it returns the location of the shortcut (.lnk).


Component が現在デザイン モードかどうかを示す値を取得します。Gets a value that indicates whether the Component is currently in design mode.

(継承元 Component)

Component に結び付けられているイベント ハンドラーのリストを取得します。Gets the list of event handlers that are attached to this Component.

(継承元 Component)

ファイル ダイアログ ボックスで選択されたファイル名を含む文字列を取得または設定します。Gets or sets a string containing the file name selected in the file dialog box.


ダイアログ ボックスで選択されたすべてのファイルの名前を取得します。Gets the file names of all selected files in the dialog box.


ダイアログ ボックスの [保存先ファイルの種類] または [ファイルの種類] ボックスに表示される選択肢を決定する、現在のファイル名のフィルター文字列を取得または設定します。Gets or sets the current file name filter string, which determines the choices that appear in the "Save as file type" or "Files of type" box in the dialog box.


ファイル ダイアログ ボックスで現在選択されているフィルターのインデックスを取得または設定します。Gets or sets the index of the filter currently selected in the file dialog box.


ファイル ダイアログ ボックスに表示される起動ディレクトリを取得または設定します。Gets or sets the initial directory displayed by the file dialog box.


アプリケーションの Win32 インスタンス ハンドルを取得します。Gets the Win32 instance handle for the application.


FileDialog を初期化するための値を取得します。Gets values to initialize the FileDialog.


ダイアログ ボックスを閉じる前に、ディレクトリを以前選択されていたディレクトリに復元するかどうかを示す値を取得または設定します。Gets or sets a value indicating whether the dialog box restores the directory to the previously selected directory before closing.


ファイル ダイアログ ボックスに [ヘルプ] ボタンを表示するかどうかを示す値を取得または設定します。Gets or sets a value indicating whether the Help button is displayed in the file dialog box.


ComponentISite を取得または設定します。Gets or sets the ISite of the Component.

(継承元 Component)

複数のファイル名拡張子を持つファイルの表示および保存をダイアログ ボックスがサポートするかどうかを示す値を取得または設定します。Gets or sets whether the dialog box supports displaying and saving files that have multiple file name extensions.


コントロールに関するデータを格納するオブジェクトを取得または設定します。Gets or sets an object that contains data about the control.

(継承元 CommonDialog)

ファイル ダイアログ ボックスのタイトルを取得または設定します。Gets or sets the file dialog box title.


ダイアログ ボックスが有効な Win32 ファイル名だけを受け入れるかどうかを示す値を取得または設定します。Gets or sets a value indicating whether the dialog box accepts only valid Win32 file names.



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

(継承元 MarshalByRefObject)

Component によって使用されているすべてのリソースを解放します。Releases all resources used by the Component.

(継承元 Component)

Component によって使用されているアンマネージド リソースを解放し、オプションでマネージド リソースも解放します。Releases the unmanaged resources used by the Component and optionally releases the managed resources.

(継承元 Component)

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

(継承元 Object)

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

(継承元 Object)

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

(継承元 MarshalByRefObject)

Component またはその Container で提供されるサービスを表すオブジェクトを返します。Returns an object that represents a service provided by the Component or by its Container.

(継承元 Component)

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

(継承元 Object)
HookProc(IntPtr, Int32, IntPtr, IntPtr)

ファイル ダイアログ ボックスに特定の機能を追加するためにオーバーライドされる、コモン ダイアログ ボックスのフック プロシージャを定義します。Defines the common dialog box hook procedure that is overridden to add specific functionality to the file dialog box.


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

(継承元 MarshalByRefObject)

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

(継承元 Object)

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

(継承元 MarshalByRefObject)

FileOk イベントを発生させます。Raises the FileOk event.


HelpRequest イベントを発生させます。Raises the HelpRequest event.

(継承元 CommonDialog)
OwnerWndProc(IntPtr, Int32, IntPtr, IntPtr)

コモン ダイアログ ボックスに特定の機能を追加するためにオーバーライドされる、オーナー ウィンドウ プロシージャを定義します。Defines the owner window procedure that is overridden to add specific functionality to a common dialog box.

(継承元 CommonDialog)

すべてのプロパティを既定値にリセットします。Resets all properties to their default values.


コモン ダイアログ ボックスを指定します。Specifies a common dialog box.


既定のオーナーを使用してコモン ダイアログ ボックスを実行します。Runs a common dialog box with a default owner.

(継承元 CommonDialog)

指定したオーナーを使用してコモン ダイアログ ボックスを実行します。Runs a common dialog box with the specified owner.

(継承元 CommonDialog)

このオブジェクトの文字列形式を示します。Provides a string version of this object.



Dispose() メソッドの呼び出しによってコンポーネントが破棄されると発生します。Occurs when the component is disposed by a call to the Dispose() method.

(継承元 Component)

ファイル ダイアログ ボックスの [開く] ボタンまたは [保存] ボタンをユーザーがクリックすると発生します。Occurs when the user clicks on the Open or Save button on a file dialog box.


ユーザーがコモン ダイアログ ボックスの [?] ボタンをクリックすると発生します。Occurs when the user clicks the Help button on a common dialog box.

(継承元 CommonDialog)