2009-09-14 11 views
5

私は選択したフォルダーを参照してフォルダー内のファイルを開くことができるブラウズボタンを含むプログラムを設計したいと思います。フォルダーをブラウズする方法

私は自分の問題を解決できる参考文献と読書が必要ですか?メソッド/クラスと同じように使うべきです。私は彼らの理論を理解するためにMSDN cozを読むのが好きではない。私はまだC#で​​初心者です。

は、P/S

非常

ありがとう:ここで私はuが新しいフォルダを作成/閲覧することができ、インターネットから見つけたコードです。しかし、私はそれがのShell32.dllを使用する理由を知らない... msdn

private void button1_Click(object sender, System.EventArgs e) 
{ 
    Stream myStream = null; 
    OpenFileDialog openFileDialog1 = new OpenFileDialog(); 

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

    if(openFileDialog1.ShowDialog() == DialogResult.OK) 
    { 
     try 
     { 
      if ((myStream = openFileDialog1.OpenFile()) != null) 
      { 
       using (myStream) 
       { 
        // Insert code to read the stream here. 
       } 
      } 
     } 
     catch (Exception ex) 
     { 
      MessageBox.Show("Error: Could not read file from disk. Original error: " + ex.Message); 
     } 
    } 
} 
+6

:Windowsまたは.NET用に開発する場合、MSDNのドキュメントを読みたくないことはあなたが行うことができます最悪です。 MSDNは絶対にWindowsと.NETのすべてをカバーします。さらに重要なのは、あなたが何をすべきでないかを教えてくれることです。あなたが初心者なので特に重要なことです。 MSDNのどこを見るのかわからない場合は、MSDNで検索するためにGoogle(またはBing)を使用してください。私はGoogleがあなたのために見つけたであろうMSDNのサンプルがあると確信しています。 – OregonGhost

+0

私はそれを認識しますが、問題は、私は自己学習で、理解できない説明があります。だから、私は他のリソースに頼る必要があるのです。アドバイスをありがとう! – user147685

+1

あなたが理解するまで、読んでください。 MSDNはあなたの親友です。 – banging

答えて

9

「ARfilePathをという名前のテキストボックスにファイル名を指定して「Browse_Button」という名前のボタンのクリックでファイルパスを挿入するにはフォームと名前それfolderBrowserDialogにFolderBrowserDialogコンポーネントをドラッグツールボックスから

private void Browse_Button_Click(object sender, EventArgs e) 
    { 
     Stream myStream = null; 
     OpenFileDialog openFileDialog1 = new OpenFileDialog(); 

     openFileDialog1.InitialDirectory = "c:\\"; 
     openFileDialog1.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*"; 
     openFileDialog1.FilterIndex = 2; 
     //openFileDialog1.RestoreDirectory = true; 
     Boolean FileExist=openFileDialog1.CheckFileExists; 
     Boolean PathExist=openFileDialog1.CheckPathExists; 
     openFileDialog1.FileName = null; 
     if (openFileDialog1.ShowDialog() == DialogResult.OK) 
     { 
      try 
      { 
       if ((myStream = openFileDialog1.OpenFile()) != null) 
       { 
        using (myStream) 
        { 
         if (FileExist == true && PathExist == true) 
         { 
          // Insert code to read the stream here. 
          string Pathname = openFileDialog1.FileName; 
          ARfilePath.Text = Pathname; 
          ARfilePath.Enabled = false; 
          /*DISABLED SO THAT THE USER CANNOT MAKE UNNECESSARY CHANGES IN THE FIELD*/ 
         } 
        } 
       } 
      } 
      catch (Exception ex) 
      { 

       /*SHOW ERRORS TO USER*/ error_label.Text = "Error: Could not read file from disk. Original error: " + ex.Message; 

       //MessageBox.Show("Error: Could not read file from disk. Original error: " + ex.Message); 
      } 
     } 
    } 
+1

また、OpenFileDialogの周りを好むopenFileDialog1 =新しいOpenFileDialog();タグを使用して – RvdK

+0

ストリームmyStream = null; 'ストリーム'はどのクラスまたは参照を参照していますか? – user147685

+0

+1 for MSDNリンク – banging

0

から

private void button1_Click(object sender, EventArgs e) 
{ 
    string strPath; 
    string strCaption = "Select a Directory and folder."; 
    DialogResult dlgResult; 
    Shell32.ShellClass shl = new Shell32.ShellClass(); 
    Shell32.Folder2 fld = (Shell32.Folder2)shl.BrowseForFolder(0, strCaption, 0, 
     System.Reflection.Missing.Value); 
    if (fld == null) 
    { 
     dlgResult = DialogResult.Cancel; 
    } 
    else 
    { 
     strPath = fld.Self.Path; 
     dlgResult = DialogResult.OK; 
    } 
} 
1

: "上記のコードは、のように変更されます。あなたの参照ボタンのイベントハンドラでは、次のコードを書いてください。レコードの

private void btnBrowseBackupLocation_Click(object sender, EventArgs e) 
    { 
     DialogResult result = folderBrowserDialog.ShowDialog(); 
     if (result == DialogResult.OK) 
     { 
      txtboxBackupLocation.Text = folderBrowserDialog.SelectedPath; 
     } 
    } 
3
  string folderpath = ""; 
      FolderBrowserDialog fbd = new FolderBrowserDialog(); 

      fbd.ShowNewFolderButton = false; 
      fbd.RootFolder = System.Environment.SpecialFolder.MyComputer; 
      DialogResult dr = fbd.ShowDialog(); 

      if (dr == DialogResult.OK) 
      { 
       folderpath = fbd.SelectedPath; 
      } 

      if (folderpath != "") 
      { 
       txtBoxPath.Text = folderpath; 
      } 
関連する問題