c# windows form テキストボックスにフォルダ・ファイル選択
// フォルダ指定
//ドロップされたファイルの一覧を取得
string[] fileName = (string[]) e.Data.GetData( DataFormats.FileDrop, false );
if (fileName.Length <= 0)
return;
// ファイルが存在していなかったら終了(フォルダの場合はコメントアウトか削除してよい)
// if (!File.Exists( fileName[0] ))
// return;
// ドロップ先がTextBoxであるかチェック
TextBox txtTarget = sender as TextBox;
if (txtTarget == null)
return;
//TextBoxの内容をファイル名に変更
txtTarget.Text = fileName[0]; //ファイルがドラッグされている場合、カーソルを変更する
if (e.Data.GetDataPresent( DataFormats.FileDrop ))
e.Effect = DragDropEffects.Copy;//FolderBrowserDialogクラスのインスタンスを作成
FolderBrowserDialog fbd = new FolderBrowserDialog
{
Description = @"フォルダを指定してください。", //上部に表示する説明テキストを指定する
RootFolder = Environment.SpecialFolder.Desktop, //ルートフォルダを指定する デフォルトでDesktop
SelectedPath = @"C:\Windows", //最初に選択するフォルダを指定する RootFolder以下にあるフォルダである必要がある
ShowNewFolderButton = true //ユーザーが新しいフォルダを作成できるようにする デフォルトでTrue
};
//ダイアログを表示する
if (fbd.ShowDialog( this ) == DialogResult.OK)
{
//選択されたフォルダを表示する
textBox.Text = fbd.SelectedPath;
}
// ファイル指定
//OpenFileDialogクラスのインスタンスを作成
OpenFileDialog ofd = new OpenFileDialog
{
FileName = "", //はじめのファイル名を指定する
InitialDirectory = @"./", //はじめに表示されるフォルダを指定する //指定しない(空の文字列)の時は、現在のディレクトリが表示される
//InitialDirectory = @"C:\",
Filter = @"txtファイル(*.tsv)|*.tsv|すべてのファイル(*.*)|*.*", //[ファイルの種類]に表示される選択肢を指定する
FilterIndex = 2, //[ファイルの種類]ではじめに 「すべてのファイル」が選択されているようにする
Title = @"開くファイルを選択してください", //タイトルを設定する
RestoreDirectory = true, //ダイアログボックスを閉じる前に現在のディレクトリを復元するようにする
CheckFileExists = true, // 存在しないファイルの名前が指定されたとき警告を表示する デフォルトはtrue
CheckPathExists = true //存在しないパスが指定されたとき警告を表示する デフォルトは true
};
//ダイアログを表示する
if (ofd.ShowDialog() == DialogResult.OK)
textBox.Text = ofd.FileName;