2009-09-14 18 views
5

Desidero progettare un programma contenente il pulsante Sfoglia, in cui possiamo navigare nella cartella selezionata e aprire il file all'interno della cartella.Come cercare la cartella

Ho bisogno di un riferimento e di una lettura dove posso risolvere i miei problemi? Piace quali metodi/classe dovrei usare. Non preferisco leggere da MSDN coz difficile per me capire le loro teorie. FYI sono ancora principiante in C#.

La ringrazio molto

P/s: Ecco il codice che ho trovato da internet dove si può navigare/creare una nuova cartella. Ma non so il motivo per cui utilizza 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

Per la cronaca: Non volendo leggere documentazione MSDN durante lo sviluppo per Windows o NET è il peggiore che si può fare. MSDN copre assolutamente tutto Windows e .NET. Ancora più importante, ti dice anche cosa non dovresti fare, che potrebbe essere particolarmente importante per te dal momento che sei un principiante. Se non si è sicuri di dove cercare MSDN, utilizzare Google (o Bing) per effettuare una ricerca su MSDN. Sono certo che c'è un esempio di questo in MSDN che Google avrebbe trovato per te. – OregonGhost

+0

Lo capisco, ma il problema è che sto imparando da solo, ci sono spiegazioni che non potrei capire. Ecco perché ho bisogno di dipendere dalle altre risorse. Grazie per il consiglio! – user147685

+1

Continua a leggere finché non capisci. MSDN è il tuo migliore amico. – banging

risposta

9

da 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

preferisce anche circondare OpenFileDialog openFileDialog1 = new OpenFileDialog(); con l'utilizzo dei tag – RvdK

+0

Stream myStream = null; lo 'Stream' si riferisce a quale classe o riferimento? – user147685

+0

+1 per il collegamento MSDN – banging

0

Per inserire il percorso del file sul click del pulsante denominato "Browse_Button" con il nome del file nella casella di testo denominata "ARfilePath "il codice di cui sopra sarà modificata come:

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

da Toolbox trascinare un componente FolderBrowserDialog al form e denominarlo FolderBrowserDialog. Nel tuo gestore di eventi pulsante Sfoglia scrivi il seguente codice.

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