2016-10-07 1 views
0

Ich schreibe gerade ein Programm und ich bin sehr neu in diesem Thema. Ich habe mit einem Programm begonnen, wo Sie eine Zip-Datei auswählen und entpacken können.Eine Zeichenfolge von einer Methode in eine andere Methode

Für beide Dinge (Auswahl, Entpacken) habe ich einen Knopf verwendet. Also gibt es eine Taste zum Auswählen und eine Taste zum Entpacken.

Jetzt nach der Auswahl der Datei möchte ich das Verzeichnis in eine Zeichenfolge, so dass die Entpackungsmethode es entpacken kann.

Aber ich weiß nicht, wie man dieses Verzeichnis in eine Zeichenfolge einfügt. Ich habe versucht string fileDir = fdlg.FileName, aber diese Zeichenfolge funktioniert nicht in der Unzip-Methode.

Wie kann ich das beheben?

Select Code:

private void button2_Click(object sender, EventArgs e) 
{ 
    OpenFileDialog fdlg = new OpenFileDialog(); 
    fdlg.Title = "Test - Selec ZIP File"; 
    fdlg.InitialDirectory = @"c:"; 
    fdlg.Filter = "Only ZIP Files|*.zip"; 
    fdlg.FilterIndex = 2; 
    fdlg.RestoreDirectory = true; 
    if (fdlg.ShowDialog() == DialogResult.OK) 
    { 
     textBox1.Text = fdlg.FileName; 
    } 
} 
+1

'fdlg' nur auf die Schaltfläche Click-Ereignishandler scoped, so dass Sie nicht zugreifen können es von anderen Event-Handlern. Sie speichern den Dateinamen in 'textBox1.Text', also sollten Sie ihn wahrscheinlich in anderen Event-Handlern ablegen. –

Antwort

0

eine Möglichkeit, eine string Variable auf Klassenebene und nicht innerhalb der Veranstaltung zu erklären sein könnte:

string fileDir = ""; 

private void button2_Click(object sender, EventArgs e) 
{ 
    OpenFileDialog fdlg = new OpenFileDialog(); 
    fdlg.Title = "Test - Selec ZIP File"; 
    fdlg.InitialDirectory = @"c:"; 
    fdlg.Filter = "Only ZIP Files|*.zip"; 
    fdlg.FilterIndex = 2; 
    fdlg.RestoreDirectory = true; 
    if (fdlg.ShowDialog() == DialogResult.OK) 
    { 
     textBox1.Text = fdlg.FileName; 

     //copy here the filename 
     fileDir = fdlg.FileName; 
    } 
} 

Jetzt sollten Sie in der Lage sein fileDir im gesamten verwenden Klasse.

+0

Danke. Das hat mein Problem behoben ^^ – Lesh

0

Wenn Sie zeigen den Weg in das Textfeld ein, zur gleichen Zeit, die Sie den Pfad in der Zeichenfolge speichern

textBox1.Text = fdlg.FileName; 
string path=textBox1.Text; 
Verwandte Themen