次の方法で共有


FileDialog クラス

定義

ユーザーがファイルを選択するダイアログ ボックスを表示します。

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
継承
派生

次のコード例では、 および のFileDialog実装をOpenFileDialog使用して、プロパティの作成、設定、ダイアログ ボックスの表示を示します。 この例では、 メソッドを ShowDialog 使用してダイアログ ボックスを表示し、 を返します DialogResult。 この例では、 が配置され、名前空間が追加されたフォーム ButtonSystem.IO 必要です。

private:
   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.
            myStream->Close();
         }
      }
   }
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
        Try
            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)
        Finally
            ' Check this again, since we need to make sure we didn't throw an exception on open.
            If (myStream IsNot Nothing) Then
                myStream.Close()
            End If
        End Try
    End If
End Sub

注釈

FileDialogは、 クラスと SaveFileDialog クラスの一般的な動作をOpenFileDialog含む抽象クラスです。 これは直接使用することを意図したものではありませんが、これら 2 つのクラスの一般的な動作が含まれています。 の FileDialogインスタンスを作成することはできません。 クラスは public として宣言されていますが、内部抽象メソッドが含まれているので、そのクラスから継承することはできません。 ファイルを選択または保存するダイアログ ボックスを作成するには、 または を使用 OpenFileDialog します SaveFileDialog

FileDialog はモーダル ダイアログ ボックスです。したがって、表示されると、ユーザーがファイルを選択するまで、アプリケーションの残りの部分がブロックされます。 ダイアログ ボックスがモーダルに表示されている場合、ダイアログ ボックス上のオブジェクトを除き、入力 (キーボードまたはマウス クリック) は発生しません。 プログラムは、呼び出し元プログラムへの入力を行う前に、ダイアログ ボックス (通常はユーザー操作に応じて) を非表示または閉じる必要があります。

注意事項

SaveFileDialogなどの OpenFileDialog からFileDialog派生したクラスを使用する場合は、絶対パスを含む文字列リテラルを使用しないでください。 代わりに、次の表に示す 1 つ以上の手法を使用してパスを動的に取得します。

ユーザーがファイルではなくフォルダーを選択できるようにする場合は、 を使用します FolderBrowserDialog

アプリケーションの種類、アプリケーションに関連付けられているデータの格納方法、およびファイル システムにアクセスする理由に応じて、ディレクトリ パスを作成できるさまざまな方法があります。 次の表に、パスを動的に作成する手法を示します。

パスまたはプログラムカテゴリ 使用するクラスとメンバー
プログラム ファイル、MyDocuments、デスクトップなどの標準の Windows パス クラスはSystem.Environment、 などのSystemDirectoryGetFolderPath静的メソッドを使用するか、 メソッドを使用して列挙値のいずれかを使用して、これらのクラスのEnvironment.SpecialFolder最も完全なソースです。
現在のアプリケーションに関連するパス Applicationクラスには、 などのLocalUserAppDataPathStartupPathExecutablePathCommonAppDataPath特定のパスを取得するための静的メンバーがあります。

System.IO.Path メソッドはGetTempPath、一時フォルダーのパスを返します。

クラスの メソッドは GetCurrentDirectorySystem.IO.Directory アプリケーションの現在実行中のディレクトリを返します。

クラスの プロパティは RootDirectoryDriveInfo 指定したドライブのルート ディレクトリを表します。
アプリケーション設定として格納されるパス から ApplicationSettingsBase派生したラッパー クラスの対応するアプリケーション設定プロパティにアクセスします。 詳細については、「Windows フォームのアプリケーション設定」を参照してください。
レジストリ ストレージ 一部のアプリケーションでは、レジストリにディレクトリ情報が格納されます。 Applicationクラスには、値にCommonAppDataPath解決される プロパティと LocalUserAppDataPath プロパティがありますRegistryKey
ClickOnce アプリケーション ClickOnce アプリケーションの場合は、 などのUserAppDataPathクラス メンバーを使用Applicationします。これにより、ClickOnce データ ディレクトリへのポインターが返されます。 詳細については、ローカルへのアクセスとリモート データには、ClickOnce アプリケーション を参照してください。
国際アプリケーション 国際アプリケーションの場合は、 クラスを使用して、アプリケーション内の文字列リソースから相対パス部分を System.Resources.ResourceReader 取得します。 グローバリゼーションとローカライズの詳細については、グロー バリゼーションとローカライズに関するトピックを参照してください。

完全なパスは、説明されている手法の 1 つ以上を使用して構築される場合があることに注意してください。 たとえば、 メソッドを GetFolderPath 使用して MyDocuments フォルダーへのパスを取得し、アプリケーション設定を使用して相対サブディレクトリ部分を追加できます。

System.IO.Pathクラスには絶対パス文字列と相対パス文字列の操作に役立つ静的メンバーがSystem.IO.File含まれていますが、 クラスと System.IO.Directory クラスには、それぞれファイルとディレクトリを実際に操作する静的メンバーがあります。

重要

アプリケーションのユーザーが の FileDialogフォルダーを変更した場合、アプリケーションの現在の作業ディレクトリは、 で FileDialog指定された場所に設定されます。 これを回避するには、 プロパティを RestoreDirectory に設定します true

フィールド

EventFileOk

FileOk イベントを所有しています。

プロパティ

AddExtension

ユーザーが拡張子を指定しない場合、ダイアログ ボックスがファイル名に自動的に拡張子を付けるかどうかを示す値を取得または設定します。

AddToRecent

ダイアログ ボックスが開いているファイルを追加するか、最近のリストに保存するかを示す値を取得または設定します。

AutoUpgradeEnabled

Windows Vista で実行するときに、この FileDialog インスタンスの外観と動作を自動的にアップグレードするかどうかを示す値を取得または設定します。

CanRaiseEvents

コンポーネントがイベントを発生させることがきるかどうかを示す値を取得します。

(継承元 Component)
CheckFileExists

存在しないファイルの名前をユーザーが指定した場合に、ダイアログ ボックスが警告を表示するかどうかを示す値を取得または設定します。

CheckPathExists

存在しないパスをユーザーが指定したときに、ダイアログ ボックスに警告を表示するかどうかを示す値を取得または設定します。

ClientGuid

このダイアログ状態に関連付ける GUID を取得または設定します。 通常、最後にアクセスしたフォルダーやダイアログの位置やサイズなどの状態は、実行可能ファイルの名前に基づいて保持されます。 GUID を指定することにより、アプリケーションでは、異なるバージョンのダイアログ (たとえばインポート ダイアログや [開く] ダイアログなど) に対して、同じアプリケーション内で異なる状態を保持することができます。

アプリケーションで視覚スタイルを使用していない場合や、AutoUpgradeEnabledfalse に設定されている場合は、この機能は使用できません。

Container

IContainer を含む Component を取得します。

(継承元 Component)
CustomPlaces

この FileDialog インスタンスに対するカスタム プレイスのコレクションを取得します。

DefaultExt

既定のファイル名の拡張子を取得または設定します。

DereferenceLinks

ダイアログ ボックスが、ショートカットで参照されたファイルの場所を返すかどうか、またはショートカットの場所 (.lnk) を返すかどうかを指定する値を取得または設定します。

DesignMode

Component が現在デザイン モードかどうかを示す値を取得します。

(継承元 Component)
Events

Component に結び付けられているイベント ハンドラーのリストを取得します。

(継承元 Component)
FileName

ファイル ダイアログ ボックスで選択されたファイル名を含む文字列を取得または設定します。

FileNames

ダイアログ ボックスで選択されたすべてのファイルの名前を取得します。

Filter

ダイアログ ボックスの [保存先ファイルの種類] または [ファイルの種類] ボックスに表示される選択肢を決定する、現在のファイル名のフィルター文字列を取得または設定します。

FilterIndex

ファイル ダイアログ ボックスで現在選択されているフィルターのインデックスを取得または設定します。

InitialDirectory

ファイル ダイアログ ボックスに表示される起動ディレクトリを取得または設定します。

Instance

アプリケーションの Win32 インスタンス ハンドルを取得します。

OkRequiresInteraction

ユーザーがビューを移動するか、ファイル名を編集するまでダイアログ ボックスの [OK] ボタンを無効にするかどうかを示す値を取得または設定します (該当する場合)。

Options

FileDialog を初期化するための値を取得します。

RestoreDirectory

ダイアログ ボックスを閉じる前に、ディレクトリを以前選択されていたディレクトリに復元するかどうかを示す値を取得または設定します。

ShowHelp

ファイル ダイアログ ボックスに [ヘルプ] ボタンを表示するかどうかを示す値を取得または設定します。

ShowHiddenFiles

ダイアログ ボックスに非表示ファイルとシステム ファイルを表示するかどうかを示す値を取得または設定します。

ShowPinnedPlaces

ビューのナビゲーション ウィンドウに既定で表示される項目を表示するかどうかを示す値を取得または設定します。

Site

ComponentISite を取得または設定します。

(継承元 Component)
SupportMultiDottedExtensions

複数のファイル名拡張子を持つファイルの表示および保存をダイアログ ボックスがサポートするかどうかを示す値を取得または設定します。

Tag

コントロールに関するデータを格納するオブジェクトを取得または設定します。

(継承元 CommonDialog)
Title

ファイル ダイアログ ボックスのタイトルを取得または設定します。

ValidateNames

ダイアログ ボックスが有効な Win32 ファイル名だけを受け入れるかどうかを示す値を取得または設定します。

メソッド

CreateObjRef(Type)

リモート オブジェクトとの通信に使用するプロキシの生成に必要な情報をすべて格納しているオブジェクトを作成します。

(継承元 MarshalByRefObject)
Dispose()

Component によって使用されているすべてのリソースを解放します。

(継承元 Component)
Dispose(Boolean)

Component によって使用されているアンマネージド リソースを解放し、オプションでマネージド リソースも解放します。

(継承元 Component)
Equals(Object)

指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。

(継承元 Object)
GetHashCode()

既定のハッシュ関数として機能します。

(継承元 Object)
GetLifetimeService()
古い.

対象のインスタンスの有効期間ポリシーを制御する、現在の有効期間サービス オブジェクトを取得します。

(継承元 MarshalByRefObject)
GetService(Type)

Component またはその Container で提供されるサービスを表すオブジェクトを返します。

(継承元 Component)
GetType()

現在のインスタンスの Type を取得します。

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

ファイル ダイアログ ボックスに特定の機能を追加するためにオーバーライドされる、コモン ダイアログ ボックスのフック プロシージャを定義します。

InitializeLifetimeService()
古い.

このインスタンスの有効期間ポリシーを制御する有効期間サービス オブジェクトを取得します。

(継承元 MarshalByRefObject)
MemberwiseClone()

現在の Object の簡易コピーを作成します。

(継承元 Object)
MemberwiseClone(Boolean)

現在の MarshalByRefObject オブジェクトの簡易コピーを作成します。

(継承元 MarshalByRefObject)
OnFileOk(CancelEventArgs)

FileOk イベントを発生させます。

OnHelpRequest(EventArgs)

HelpRequest イベントを発生させます。

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

コモン ダイアログ ボックスに特定の機能を追加するためにオーバーライドされる、オーナー ウィンドウ プロシージャを定義します。

(継承元 CommonDialog)
Reset()

すべてのプロパティを既定値にリセットします。

RunDialog(IntPtr)

コモン ダイアログ ボックスを指定します。

ShowDialog()

既定のオーナーを使用してコモン ダイアログ ボックスを実行します。

(継承元 CommonDialog)
ShowDialog(IWin32Window)

指定したオーナーを使用してコモン ダイアログ ボックスを実行します。

(継承元 CommonDialog)
ToString()

このオブジェクトの文字列形式を示します。

イベント

Disposed

Dispose() メソッドの呼び出しによってコンポーネントが破棄されるときに発生します。

(継承元 Component)
FileOk

ファイル ダイアログ ボックスの [開く] ボタンまたは [保存] ボタンをユーザーがクリックすると発生します。

HelpRequest

ユーザーがコモン ダイアログ ボックスの [?] ボタンをクリックすると発生します。

(継承元 CommonDialog)

適用対象

こちらもご覧ください