C# C# FolderBrowserDialog

KinqLuke

Cadet 2nd Year
Registriert
Aug. 2016
Beiträge
16
Hallo Leute
Habe ein Problem

Ich bin gerade dabei ein Programm zu schreiben, mit dem ich mittels Button klick einen Ordner auf meinem PC auswählen kann.(Ich nehme an das FolderBrowserDialog in diesem Fall richtig ist)
Nun zu der Aufgabe:
Es gibt den Button(btnSRC) der bei Betätigung eben ein Fenster öffnen soll wo ich einen beliebigen Ordner vom PC auswählen kann, und der Name bzw. Pfad (bitte beide Varianten) in eine TextBox(tbSRC) hinschreiben soll.

Da ich leider erst vor kurzem mit C# begonnen habe, wäre es super wenn jemand mir helfen könnte


Danke im Vorhinein!

L.G. KinqLuke
 
Es gibt im Netz mit Sicherheit genug Anleitungen, wie man diesen Dialog implementiert. Und dazu kann man sich noch die Docs anschauen bei Microsoft, dann findet man auch die Funktionen um den ausgewählten Pfad zu bekommen ;) Ein bisschen selbstinitiative muss man beim Programmieren schon zeigen.

Edit: Sieh an, Google erste Antwort: https://msdn.microsoft.com/de-de/li...?cs-save-lang=1&cs-lang=csharp#code-snippet-1
 
Danke für die schnelle antwort dominic.e
Ich habe bereits auf mehreren seiten nachgelesen und mich bei msdn umgesehen aber ich habr es leider nicht gefunden was ich Suche
Aber dich bleibe dran danke ;)
 
Kein Problem, jeder hat mal klein angefangen mitm coden ;)
​Wenn du weitere Fragen hast, immer raushauen damit :daumen:
 
KinqLuke schrieb:
Es gibt den Button(btnSRC) der bei Betätigung eben ein Fenster öffnen soll wo ich einen beliebigen Ordner vom PC auswählen kann, und der Name bzw. Pfad (bitte beide Varianten) in eine TextBox(tbSRC) hinschreiben soll.

Ok, das ist die Aufgabe. Aber wo ist das Problem?
 
Das Problem ist leider das ich nicht genau wie ich die Satzstellung aufbauen muss.
Ergänzung ()

public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void btnSRC_Click(object sender, EventArgs e)
{

string ftocopy = "";
string target = "";
string[] files;

FolderBrowserDialog fbd = new FolderBrowserDialog();
fbd.ShowDialog();
ftocopy = fbd.SelectedPath;

fbd.ShowDialog();

target = tbSRC;

files = Directory.GetFiles(ftocopy);
Directory.CreateDirectory(target);

}
}





So sieht der Code derweil aus aber er will nicht wie ich will.
bei mir zeigt es an das der Fehler bei "target = tbSRC" liegt?!
 
Satzstellung? Du meinst Syntax? Dann zeig doch mal den Code, wenn die Besipiele nicht helfen.
Ergänzung ()

Bitte Code in
Code:
-Tags posten.
Aus dem Code geht nicht hervor, was "tbSRC" sein soll. Eine TexBox vielleicht?
 
Ja das ist eine TextBox
Habe ich oben bei meiner ersten Frage beschrieben.
 
zum reinschreiben in die Textbox musst Du eigentlich nur den SelectedPath an die Textbox übergeben.

tbSRC.Text=fbd.SelectedPath;

ShowDialog ist doppelt!! Es wäre auch gut das DialogResult zu checken. Zwecks Ok und Cancel.
 
Dann musst du per tbSRC.Text auf den Text in der Textbox zugreifen.

Warum hast du 2 mal "fbd.ShowDialog();"?
 
tbSRC ist eine Textbox und Du versuchst einem String das Objekt Textbox zuzuweisen und dicht die Text-Eigenschaft.
Mit Target = tbSRC.Text sollte es klappen
 
Sorry Leute das ich mich so blöd anstelle aber ich weis es derzeit echt nicht besser



Jetzt hab ich es so ergänzt und ich kann schon etwas auswählen aber es wird noch nicht in der TextBox angezeigt


public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void btnSRC_Click(object sender, EventArgs e)
{

string ftocopy = "";
string target = "";
string[] files;

FolderBrowserDialog fbd = new FolderBrowserDialog();
fbd.ShowDialog();
ftocopy = fbd.SelectedPath;

tbSRC.Text = fbd.SelectedPath;

files = Directory.GetFiles(ftocopy);
Directory.CreateDirectory(target);

}
}
Ergänzung ()

Habe es auch mit target = tbSRC.Text; probiert aber es passiert genau das selbe wie bei dem anderen
Es wird noch nicht in die TB eingefügt
 
a) Bitte nutz das Code Tag, damit man es besser lesen kann
b) hast du dir mal meinen Link angeschaut, wie das bei MS gemacht wurde?

Code:
if (folderBrowserDialog1.ShowDialog() == DialogResult.OK) 
    {
        textBox1.Text = folderBrowserDialog1.SelectedPath;
    }
 
Ja aber ich werde nicht ganz schlau aus dem ganzen :(


Code:
public partial class Form1 : Form
    
        public Form1()
        {
            InitializeComponent();
        }

        private void btnSRC_Click(object sender, EventArgs e)
        {

            string ftocopy = "";
            string target = "";
            string[] files;

            FolderBrowserDialog fbd = new FolderBrowserDialog();
            fbd.ShowDialog();
            ftocopy = fbd.SelectedPath;

            //target = tbSRC.Text;
           // tbSRC.Text = fbd.SelectedPath;

            files = Directory.GetFiles(ftocopy);
            Directory.CreateDirectory(target);
        
        }
    }





Danke für eure Geduld
Ergänzung ()

Habe jetzt mal eure Vorschläge auskomentiert
 
Code:
public partial class Form1 : Form
    
        public Form1()
        {
            InitializeComponent();
        }

        private void btnSRC_Click(object sender, EventArgs e)
        {

            string ftocopy = "";
            string target = "";
            string[] files;

            FolderBrowserDialog fbd = new FolderBrowserDialog();

            if (fdb.ShowDialog() == DialogResult.OK)
             {
                 ftocopy = fbd.SelectedPath;
                 tbSRC.Text = fbd.SelectedPath;
                 target = tbSRC.Text;
                 files = Directory.GetFiles(ftocopy);
                 Directory.CreateDirectory(target);
            }
        }
    }

Ohne Fehlerbehandlung und co.
 
Zuletzt bearbeitet:
Es zeigt bei euren Varianten und bei der Variante ohne eure Ideen den selben Fehler

Bei der Letzen Zeile

Directory.CreateDirectory(target);

Sagt das Programm:Path cannot be the empty string or all whitespace.
 
Du weist target keinen Pfad zu, daher funktioniert auch CreateDirectory nicht wie erwartet.
 
Okay das heist ich muss oben bei der Deklaration von target einen "Zielordner" z.B. angeben?

Wenn ich Directory.CreateDirectory(target); aus kommentiere, geht es zwar aber ich muss komischer weise mehrmals auf den ausgewälten ordner klicken ?


Danke auf jeden Fall mal für die Hilfestellung Leute !!
 
Schau dir nochmal meinen letzten Code an, hab den etwas angepasst.
 
Zurück
Oben