2016-10-07 17 views
0

私は現在プログラムを作成しています。 私はzipファイルを選択して解凍できるプログラムを使い始めました。メソッドから別のメソッドに1つの文字列を取得

両方の場合(選択、解凍)私は1つのボタンを使用しました。したがって、選択するボタンと解凍するボタンがあります。

ファイルを選択した後、ディレクトリを文字列に入れたいので、unzipメソッドで解凍できます。

しかし、このディレクトリを文字列にする方法はわかりません。 string fileDir = fdlg.FileNameを試しましたが、この文字列は解凍メソッドでは機能しません。

どうすればこの問題を解決できますか?

選択コード:

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'が唯一のボタンのクリックイベントハンドラにスコープされた文字列でパスを保存することができ、同時にテキストボックスにパスを表示するときは、アクセスすることはできませんので、それは他のイベントハンドラからのものです。 'textBox1.Text'にファイル名を格納するので、おそらく他のイベントハンドラのファイル名と同じにする必要があります。 –

答えて

0

一つの可能​​性は、イベント内のクラスレベルにstring変数を宣言しないようにすることができます

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

今、あなたは、全体を通してfileDirを使用することができるはずですクラス。

+0

ありがとうございます。これは私の問題を解決しました^^ – Lesh

0

あなたは、

textBox1.Text = fdlg.FileName; 
string path=textBox1.Text; 
関連する問題