2017-02-23 88 views
1

我想從使用Directory.GetFiles()創建的圖片的字符串數組中加載圖片到圖片框中。我相信我沒有正確設置picFile的設置。嘗試從圖片數組中加載圖片

我已經不是創造了一個pictureBox_Click事件後續加載圖片,但如果我重定向字符串數組到控制檯我看到在該目錄中的文件列表中沒有寫該事件處理

string fileEntries = ""; 

private void showButton_Click(object sender, EventArgs e) 
{ 
    // First I want the user to be able to browse to and select a 
    // folder that the user wants to view pictures in 
    string folderPath = ""; 
    FolderBrowserDialog folderBrowserDialog1 = new FolderBrowserDialog(); 
    if (folderBrowserDialog1.ShowDialog() == DialogResult.OK) 
    { 
     folderPath = folderBrowserDialog1.SelectedPath; 
    } 

    // Now I want to read all of the files of a given type into a 
    // array that from the path provided above 
    ProcessDirectory(folderPath); 

    // after getting the list of path//filenames I want to load the first image here 
    string picFile = fileEntries; 
    pictureBox1.Load(picFile); 
} 

public static void ProcessDirectory(string targetDirectoy) 
{ 
    // Process the list of files found in the directory. 
    string[] fileEntries = Directory.GetFiles(targetDirectoy); 
    } 

    // event handler here that advances to the next picture in the list 
    // upon clicking 
} 

但也有完整的路徑作爲字符串的一部分 - 不知道這是否是問題。

+1

嘗試pictureBox1.Image = Image.FromFile(picFile); –

回答

1
string[] fileEntries = ProcessDirectory(folderPath); 
if (fileEntries.Length > 0) { 
string picFile = fileEntries[0]; 
pictureBox1.Load(picFile); 
} 

您有兩次聲明的fileEntries。

public static string[] ProcessDirectory(string targetDirectoy) { 
return Directory.GetFiles(targetDirectoy); 
} 
1

現在我想向所有給定類型的文件讀入 陣列,從上述

提供的路徑所以,你必須在方法ProcessDirectory的簽名更改爲返回一個包含所有圖片文件的字符串,您可以使用搜索模式來獲取具有特定擴展名的文件。您可以使用以下簽名:

public static string[] ProcessDirectory(string targetDirectoy) 
{ 
    return Directory.GetFiles(targetDirectoy,"*.png"); 
} 

越來越路徑//列表中的文件後,我想在這裏裝載的第一圖像

所以,你可以調用的方法得到的所有文件具有特定擴展名的特定目錄。然後將第一文件裝載到PictureBox的如果具有任何文件的陣列,則可以使用此以下代碼:

var pictureFiles = ProcessDirectory(folderPath); 
if (pictureFiles.Length > 0) 
{ 
// process your operations here   
    pictureBox1.Load(pictureFiles[0]); 
}