我试图从使用Directory.GetFiles()创建的字符串数组中将图片加载到pictureBox中。我相信我没有正确设置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
}
如果我将字符串数组重定向到控制台,我会看到该目录中的文件列表,但它也有完整路径作为字符串的一部分 - 不确定这是否是问题。
答案 0 :(得分: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 :(得分:1)
现在我想将给定类型的所有文件读入 来自上面提供的路径的数组
因此,您必须更改方法ProcessDirectory
的签名以返回包含所有图片文件的字符串,您可以使用搜索模式来获取具有特定扩展名的文件。您可以使用以下签名:
public static string[] ProcessDirectory(string targetDirectoy)
{
return Directory.GetFiles(targetDirectoy,"*.png");
}
获取路径//文件名列表后,我想在这里加载第一张图片
因此,您可以调用该方法来获取具有特定扩展名的特定目录中的所有文件。然后将第一个文件加载到图片框中,如果阵列中有任何文件,可以使用以下代码:
var pictureFiles = ProcessDirectory(folderPath);
if (pictureFiles.Length > 0)
{
// process your operations here
pictureBox1.Load(pictureFiles[0]);
}