2009-09-14 8 views
5

Je souhaite concevoir un programme contenant un bouton de navigation, dans lequel nous pouvons naviguer jusqu'au dossier sélectionné et ouvrir le fichier dans le dossier.Comment rechercher un dossier

J'ai besoin d'une référence et de la lecture où je peux résoudre mes problèmes? Comme quelles méthodes/classe dois-je utiliser. Je ne préfère pas lire de MSDN coz dur pour moi de comprendre leurs théories. Pour info je suis toujours débutant en C#.

Merci beaucoup

P/s: Voici le code que j'ai trouvé à partir d'Internet où l'on peut parcourir/créer un nouveau dossier. Mais je ne sais pas pourquoi il utilise Shell32.dll ..

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

Pour mémoire: Ne voulant pas lire docs MSDN lors du développement pour Windows ou .NET est le pire que vous pouvez faire. MSDN couvre absolument tout Windows et .NET. Plus important encore, il vous dit aussi ce que vous ne devriez pas faire, ce qui peut être particulièrement important pour vous puisque vous êtes débutant. Si vous ne savez pas où chercher dans MSDN, utilisez Google (ou Bing) pour effectuer une recherche sur MSDN. Je suis sûr qu'il y a un échantillon pour MSDN que Google aurait trouvé pour vous. – OregonGhost

+0

Je me rends compte que, mais le problème est, je suis sur l'auto-apprentissage, il y a des explications que je ne pouvais pas comprendre. C'est pourquoi je dois dépendre des autres ressources. Merci du conseil! – user147685

+1

Continuez à lire jusqu'à ce que vous compreniez. MSDN est votre meilleur ami. – banging

Répondre

9

de 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

préfèrent également OpenFileDialog openFileDialog1 = new OpenFileDialog(); avec l'utilisation de tags – RvdK

+0

Stream myStream = null; le 'Stream' se réfère à quelle classe ou référence? – user147685

+0

+1 pour le lien MSDN – banging

0

Pour insérer le chemin du fichier sur un clic de bouton nommé « Browse_Button » avec le nom de fichier dans la boîte de texte nommé « ARfilePath "le code ci-dessus sera modifié comme:

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

de boîte à outils, faites glisser un composant FolderBrowserDialog à votre formulaire et nommez-le FolderBrowserDialog. Dans votre gestionnaire d'événements de bouton de navigation, écrivez le code suivant.

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; 
      } 
Questions connexes