2009-09-14 29 views
5

Ich möchte ein Programm mit Browse-Taste entwerfen, wo wir zu dem ausgewählten Ordner navigieren und die Datei im Ordner öffnen können.So suchen Sie nach Ordner

Ich brauche eine Referenz und lesen, wo ich meine Probleme lösen kann? Wie welche Methoden/Klasse sollte ich verwenden. Ich ziehe es nicht vor, MSDN zu lesen, denn es ist schwer für mich, ihre Theorien zu verstehen. FYI Ich bin immer noch Anfänger in C#.

Vielen Dank

P/s: Hier Code sind, die ich aus dem Internet gefunden, wo u können neue Ordner durchsuchen/erstellen. Aber ich weiß nicht, warum es Shell32.dll verwendet ..

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; 
    } 
} 
+6

Für das Protokoll: Viele wollen nicht MSDN-Dokumentation zu lesen, wenn für Windows oder .NET-Entwicklung ist das Schlimmste, was Sie tun können. MSDN deckt absolut alles Windows und .NET ab. Noch wichtiger, es sagt Ihnen auch, was Sie nicht tun sollten, was für Sie als Anfänger besonders wichtig ist. Wenn Sie nicht sicher sind, wo Sie in MSDN suchen, verwenden Sie Google (oder Bing), um auf MSDN zu suchen. Ich bin mir sicher, dass es ein Beispiel dafür in MSDN gibt, das Google für Sie gefunden hätte. – OregonGhost

+0

Ich erkenne das, aber das Problem ist, ich bin auf Selbstlernen, es gibt Erklärungen, die ich nicht verstehen konnte. Deshalb muss ich mich auf die anderen Ressourcen verlassen. Danke für den Rat! – user147685

+1

Lesen Sie weiter, bis Sie verstehen. MSDN ist dein bester Freund. – banging

Antwort

9

von 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); 
     } 
    } 
} 
+1

bevorzugen auch umgebenden OpenFileDialog openFileDialog1 = new OpenFileDialog(); mit Tags – RvdK

+0

Stream myStream = null; bezieht sich der 'Stream' auf welche Klasse oder Referenz? – user147685

+0

+1 für MSDN-Verbindung – banging

0

Um den Dateipfad auf Schaltfläche anklickt einfügen Namen „Browse_Button“ mit Dateinamen im Textfeld mit dem Namen „ARfilePath "der obige Code wird modifiziert:

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

Von Toolbox ziehen eine Folder Komponente in das Formular und nennen sie es Folder. Schreiben Sie den folgenden Code in Ihre Browse-Schaltfläche.

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; 
      } 
Verwandte Themen