2015-10-27 38 views
2

我正在使用WinForms。在我的表格中,我有一個picturebox。在表單加載我的應用程序打開我的電腦內的特定文件夾的PNG圖片。我希望能夠在標籤中顯示文件名。顯示標籤文本中的文件名

例如位置是:C:\image\

的標籤應該說:

C:\影像\ MyPicture.png

private void Form1_Load(object sender, EventArgs e) 
    { 

     try // Get the tif file from C:\image\ folder 
     { 
      string path = @"C:\image\"; 
      string[] filename = Directory.GetFiles(path, "*.png"); 

      pictureBox1.Load(filename[0]); 


      lblFile.Text = path; //I've tried this... does not give file name 

     } 
     catch(Exception ex) 
     { 
      MessageBox.Show("No files or " + ex.Message); 
     } 
    } 
+3

您已經在使用的文件名[0]加載圖像,爲什麼不顯示它的標籤呢? –

+0

當然'路徑'不會給你文件名;它只會給你存儲在'path'('@「C:\ image \」')中的值。像你在'pictureBox1.Load()'調用中一樣使用'filename [0]'。 – sab669

+0

你不應該期望'path'給你文件名,你正在控制它的值,你從來沒有指定文件名。 – MikeH

回答

1

你沒有必要讓所有文件(Directory.GetFiles),只是第一個,所以讓我們擺脫陣列和簡化代碼:

private void Form1_Load(object sender, EventArgs e) 
{ 

    try // Get the tif file from C:\image\ folder 
    { 
     string path = @"C:\image\"; 
     String filename = Directory.EnumerateFiles(path, "*.png").FirstOrDefault(); 

     if (null != filename) { 
      // Load picture 
      pictureBox1.Load(filename); 
      // Show the file name 
      lblFile.Text = filename; 
     } 
     else { 
      //TODO: No *.png files are found 
     } 
    } 
    catch(IOException ex) 
    { 
     MessageBox.Show("No files or " + ex.Message); 
    } 
} 
+0

你選擇使用String而不是'string'的任何原因?我猜這最終只是用戶偏好,但是... – sab669

+0

@ sab669:'string'和'String'是同義詞,我個人比較喜歡'String'當'string path = @「C:\ image \」'只是從問題中複製。 –

+0

是的,我知道它們是可以互換的,除非調用它的靜態方法之一,否則我很少看到使用'String'。不確定是否有任何特殊原因 – sab669