タイトル
 メニューにないコーナーはTopからいけます
TOP.NETWindowsForm → This Page

.NET プログラミングのコーナー
クラス関連 > コントロール関連 > ファイル選択ダイアログ


概要


ダイアログで選択したファイルを読み込む・書き込むサンプルです。


サンプルイメージ


サンプル画像


サンプルソース(一部抜粋)

C#

// 開いたファイルを読み込む
private void Button1_Click(object sender, System.EventArgs e)
{
	OpenFileDialog ofd;
	System.IO.Stream s;

	TextBox1.Text = "";

	ofd = new OpenFileDialog();

	ofd.Title = "ファイルを選択してください";
	ofd.FileName = "TEST.TXT";     // 初期表示ファイル名
	ofd.InitialDirectory = "C:\\"; // 初期表示フォルダ
	ofd.Filter = "TXTファイル|*.txt|すべてのファイル|*.*";  // ファイルの種類
	ofd.FilterIndex = 0;           // 上記フィルタのどれを初期表示するか(今回はゼロなのでTXTが初期表示される)

	ofd.RestoreDirectory = true;   // ダイアログボックスを閉じる前に、現在のディレクトリを復元する
	ofd.CheckFileExists = true;    // 存在しないファイルを指定すると警告
	ofd.CheckPathExists = true;    // 存在しないパスを指定すると警告
	ofd.DereferenceLinks = true;   // ショートカットを選択した場合、参照先のパスを取得する(Falseだとショートカットファイルそのものを取得)

	ofd.DefaultExt = "TXT";
	ofd.AddExtension = true;       // 選択時に拡張子を省略した場合、DefaultExtで指定した拡張子が自動的に付けられる

	// ダイアログを表示
	if (ofd.ShowDialog() == DialogResult.OK)
	{
		// 選択ファイルをオープン
		s = ofd.OpenFile();
		if (s != null)
		{
			System.IO.StreamReader sr = new System.IO.StreamReader(s);
			TextBox1.Text = sr.ReadToEnd();
			sr.Close();
			s.Close();
		}
	}

	ofd = null;
}

// 選択したファイルに書き込む
private void Button2_Click(object sender, System.EventArgs e)
{
	SaveFileDialog sfd = new SaveFileDialog();
	System.IO.Stream s;

	sfd.Title = "ファイルを選択してください";
	sfd.FileName = "TEST.TXT";     // 初期表示ファイル名
	sfd.InitialDirectory = "C:\\"; // 初期表示フォルダ
	sfd.Filter = "TXTファイル|*.txt|CSVファイル|*.csv|すべてのファイル|*.*";  // ファイルの種類
	sfd.FilterIndex = 0;           // 上記フィルタのどれを初期表示するか(今回はゼロなのでTXTが初期表示される)

	sfd.RestoreDirectory = true;   // ダイアログボックスを閉じる前に、現在のディレクトリを復元する
	sfd.CheckPathExists = true;    // 存在しないパスを選択すると警告
	sfd.OverwritePrompt = true;    // 存在するファイルを選択すると上書き確認メッセージを表示

	// ダイアログを表示
	if (sfd.ShowDialog() == DialogResult.OK)
	{
		s = sfd.OpenFile();
		// 選択ファイルをオープン
		if (s != null)
		{
			System.IO.StreamWriter sw = new System.IO.StreamWriter(s);
			sw.Write(TextBox1.Text);
			sw.Close();
			s.Close();
		}
	}
}


--------------------------------------------------------------------------------
VB.NET

'開いたファイルを読み込む
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim ofd As OpenFileDialog
    Dim s As System.IO.Stream

    TextBox1.Text = ""

    ofd = New OpenFileDialog

    ofd.Title = "ファイルを選択してください"
    ofd.FileName = "TEST.TXT"     '初期表示ファイル名
    ofd.InitialDirectory = "C:\"  '初期表示フォルダ
    ofd.Filter = "TXTファイル|*.txt|すべてのファイル|*.*"  'ファイルの種類
    ofd.FilterIndex = 0           '上記フィルタのどれを初期表示するか(今回はゼロなのでTXTが初期表示される)

    ofd.RestoreDirectory = True   'ダイアログボックスを閉じる前に、現在のディレクトリを復元する
    ofd.CheckFileExists = True    '存在しないファイルを指定すると警告
    ofd.CheckPathExists = True    '存在しないパスを指定すると警告
    ofd.DereferenceLinks = True   'ショートカットを選択した場合、参照先のパスを取得する(Falseだとショートカットファイルそのものを取得)

    ofd.DefaultExt = "TXT"
    ofd.AddExtension = True       '選択時に拡張子を省略した場合、DefaultExtで指定した拡張子が自動的に付けられる

    'ダイアログを表示
    If ofd.ShowDialog() = DialogResult.OK Then
        '選択ファイルをオープン
        s = ofd.OpenFile()
        If IsNothing(s) = False Then
            Dim sr As New System.IO.StreamReader(s)
            TextBox1.Text = sr.ReadToEnd()
            sr.Close()
            s.Close()
        End If
    End If

    ofd = Nothing
End Sub

'選択したファイルに書き込む
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    Dim sfd As New SaveFileDialog
    Dim s As System.IO.Stream

    sfd.Title = "ファイルを選択してください"
    sfd.FileName = "TEST.TXT"     '初期表示ファイル名
    sfd.InitialDirectory = "C:\"  '初期表示フォルダ
    sfd.Filter = "TXTファイル|*.txt|CSVファイル|*.csv|すべてのファイル|*.*"  'ファイルの種類
    sfd.FilterIndex = 0           '上記フィルタのどれを初期表示するか(今回はゼロなのでTXTが初期表示される)

    sfd.RestoreDirectory = True   'ダイアログボックスを閉じる前に、現在のディレクトリを復元する
    sfd.CheckPathExists = True    '存在しないパスを選択すると警告
    sfd.OverwritePrompt = True    '存在するファイルを選択すると上書き確認メッセージを表示

    'ダイアログを表示
    If sfd.ShowDialog() = DialogResult.OK Then
        s = sfd.OpenFile()
        '選択ファイルをオープン
        If IsNothing(s) = False Then
            Dim sw As New System.IO.StreamWriter(s)
            sw.Write(TextBox1.Text)
            sw.Close()
            s.Close()
        End If
    End If
End Sub

サンプルソースのダウンロード


ソースのダウンロード


TOP.NETWindowsForm → This Page
Valid CSS!