2013-09-22 42 views
0

我對這件事很陌生。其實這是我的第一件作品。我想要一個從文本框中讀取隨機文件數的程序。它有一個按鈕來隨機選擇路徑中的文件。我需要在列表框中打開文件。如何從隨機挑選的多個文件執行文件?

我的問題是,當我雙擊列表框,它打開列表中的最後一個文件,無論我d.clicked什麼文件。我試圖在下面添加兩行斜線。但它也沒有工作。我能做什麼?

public Form1() 
    { 
     InitializeComponent(); 
    } 
    Random r = new Random(); 
    string path1;   
    DirectoryInfo dif; 
    FileInfo[] files;    
    int randomchoose; 
     //FileInfo[] files2; 
    //int hoho; 
    int[] randomcount; 

    private void button1_Click(object sender, EventArgs e) 
    { 

     FolderBrowserDialog hoho = new FolderBrowserDialog(); 
     hoho.ShowNewFolderButton = true; 

     if (hoho.ShowDialog() == DialogResult.OK) 
     { 
      path1 = hoho.SelectedPath; 
      textBox1.Text = path1; 
      dif = new DirectoryInfo(path1); 
      files = dif.GetFiles();    
     } 

    } 

    private void btnrasgele_Click(object sender, EventArgs e) 
    {   
     randomcount = new int[Convert.ToInt32(textBox3.Text)]; 
     // int hoho=0; 
     foreach (int k in randomcount) 
     {    
      int pd = files.Length; 

      randomchoose = r.Next(0, Convert.ToInt32(pd + 1)); 
      listBox1.Items.Add(files[randomchoose]); 
     //files2[hoho] = files[randomchoose].FullName;   
      } 
     } 

    private void listBox1_MouseDoubleClick(object sender, MouseEventArgs e) 
    { 

     //listBox1.SelectedIndex = hoho; 
     //Process.Start(files2[hoho].FullName); 
      Process.Start(files[randomchoose].FullName); 

    } 

回答

0

您在其中被固定在這一點上randomchoose過去了,試試這個來代替:

private void listBox1_MouseDoubleClick(object sender, MouseEventArgs e) 
{ 
    if(listBox1.SelectedItem != null) 
     Process.Start(((FileInfo)listBox1.SelectedItem).FullName); 
} 
+0

沒有,可悲的是它給「win32exception是未處理」。我想我們需要Process.Start()中的完整路徑; – korrupt

+0

@mehmtDemir這是我的錯誤,我認爲你添加了'FullName'作爲你的列表框中的每個項目,但它是'FileInfo',只是更新。 –

+0

謝謝,它的工作原理。如果我想將其擴展到其子目錄,我該怎麼辦?讚賞。 – korrupt

相關問題