2013-03-07 10 views
13

Ich muss derzeit Code, um mir zu ermöglichen, alle Dateien eines Ordners zu lesen und sie auf der Konsole zu schreiben. Im Folgenden habe ich auch den Code, um einzelne Dateien aus einem Verzeichnis mit einem Browser auszuwählen. Ich würde gerne wissen, wie ich einen Ordner mit einem Browse-Button auswählen könnte.Suchen Sie nach Ordner in der Konsolenanwendung

Code alle Dateien

foreach(var path in Directory.GetFiles(@"C:\Name\Folder\")) 
    { 
     Console.WriteLine(path); // full path 
     Console.WriteLine(System.IO.Path.GetFileName(path)); // file name 
    } 

-Code überprüfen Dialogfeld zu öffnen

OpenFileDialog fileSelectPopUp = new OpenFileDialog(); 
      fileSelectPopUp.Title = ""; 
      fileSelectPopUp.InitialDirectory = @"c:\"; 
      fileSelectPopUp.Filter = "All EXCEL FILES (*.xlsx*)|*.xlsx*|All files (*.*)|*.*"; 
      fileSelectPopUp.FilterIndex = 2; 
      fileSelectPopUp.RestoreDirectory = true; 
      if (fileSelectPopUp.ShowDialog() == DialogResult.OK) 
      { 
       textBox1.Text = fileSelectPopUp.FileName; 
      } 
+0

Sie wissen nicht, ob dies helfen wird, aber Sie könnten http://StackOverflow.com/questions/31059/how-do-you-configure-an-openfiledialog-to-select-folders versuchen –

+0

Dies wurde bereits beantwortet http://StackOverflow.com/Questions/11767/ Browse-for-ein-Verzeichnis-in-c-sharp ... Verwenden Sie einen [FolderBrowserDialog ] (http://msdn.microsoft.com/en-us/library/system.windows.forms.folderbrowserdialog.aspx) – clemchen

Antwort

26

Erste was Sie brauchen, finden Sie ence to System.Windows.Forms

Fügen Sie dann STAThread Attribut der Hauptmethode hinzu. Dies zeigt an, dass Ihr Programm single-threaded ist und es mit COM-Komponenten arbeiten kann (die die Systemdialoge verwenden).

Danach nur Sie die FolderBrowserDialog mit der Konsole-Anwendung

static class Program 
{ 
    [STAThread] 
    static void Main(string[] args) 
    { 
     FolderBrowserDialog fbd = new FolderBrowserDialog(); 
     if (fbd.ShowDialog() == DialogResult.OK) 
     { 
      foreach (var path in Directory.GetFiles(fbd.SelectedPath)) 
      { 
       Console.WriteLine(path); // full path 
       Console.WriteLine(System.IO.Path.GetFileName(path)); // file name 
      } 
     } 


    } 
} 
2

Benutzer die FolderBrowserDialog

FolderBrowserDialog b = new FolderBrowserDialog(); 

if(b.ShowDialog() == DialogResult.OK) 
{ 
    var folderName = b.SelectedPath; 
} 
1

Alhough, gemacht für Bild UI-Operationen können Sie DotImaging.UI verwenden können:

string fileName = UI.OpenFile(); //open-file dialog 
+0

Damit dies funktioniert, müssen Sie Ihre Hauptfunktion (oder vielleicht Ihre Anruffunktion) als [ STAThreadAttribute] – Techrocket9

Verwandte Themen