FolderBrowserDialog fbd=new FolderBrowserDialog();
if(fbd.ShowDialog()==DialogResult.OK)
{
DirectoryInfo di=(fbd.SelectPath);
FileInfo[] fileList=di.GetFiles;
ArrayList arr=new ArrayList();
foreach(FileInfo fi in fileList)
{
arr.Add(fi.FullName);
}
arrNames=(string[])arr.ToArray(typeof(string));
picMain.Image=Image.FromFile(arrNames[0]);
}上面代码是从用户选择的文件夹中找出所有文件名,以显示图片.
怎么筛选出图片?(我只要 *.jpg,*.png,*.bmp等文件的文件名)
if(fbd.ShowDialog()==DialogResult.OK)
{
DirectoryInfo di=(fbd.SelectPath);
FileInfo[] fileList=di.GetFiles;
ArrayList arr=new ArrayList();
foreach(FileInfo fi in fileList)
{
arr.Add(fi.FullName);
}
arrNames=(string[])arr.ToArray(typeof(string));
picMain.Image=Image.FromFile(arrNames[0]);
}上面代码是从用户选择的文件夹中找出所有文件名,以显示图片.
怎么筛选出图片?(我只要 *.jpg,*.png,*.bmp等文件的文件名)
{
..................................
}
这个可以判断最后的字母是不是.bmp||.jpg||.png你的程序似乎有错误,我调试的时候是这样!FolderBrowserDialog fbd=new FolderBrowserDialog();
if(fbd.ShowDialog()==DialogResult.OK)
{
DirectoryInfo di=(fbd.SelectPath); //这里怎么都说有错,除非改成new DirectoryInfo(fbd.selectPath);改了后,又好象没找到图象,不知道是不是我的文件夹冒图象!…^_^ FileInfo[] fileList=di.GetFiles;
ArrayList arr=new ArrayList();
foreach(FileInfo fi in fileList)
{
这里加个判断就可以了!
arr.Add(fi.FullName);
}
arrNames=(string[])arr.ToArray(typeof(string));
picMain.Image=Image.FromFile(arrNames[0]);
}
FolderBrowserDialog fbd = new FolderBrowserDialog();
if (fbd.ShowDialog() == DialogResult.OK)
{
ArrayList arr = new ArrayList();
foreach (string str in System.IO.Directory.GetFiles(fbd.SelectedPath, "*.jpg"))
{
arr.Add(str);
}
foreach (string str in System.IO.Directory.GetFiles(fbd.SelectedPath, "*.pnp"))
{
arr.Add(str);
}
foreach (string str in System.IO.Directory.GetFiles(fbd.SelectedPath, "*.bmp"))
{
arr.Add(str);
} arrNames = (string[])arr.ToArray(typeof(string));
picMain.Image = Image.FromFile(arrNames[0]);
}
有没有象OpenFileDialog类的Filter那样直接把 *.bmp,*.png,*.jpg一起全部筛选的?
请问谁还有好的办法,拿出来分享啊!我觉得5楼的办法太麻烦了
if (fbd.ShowDialog() == DialogResult.OK)
{
DirectoryInfo di = new DirectoryInfo(fbd.SelectedPath);
FileInfo[] fileList = di.GetFiles();
ArrayList arr = new ArrayList(); Regex rg=new Regex(@"^.+\.bmp$|^.+\.png$|^.+\.jpg&"); foreach (FileInfo fi in fileList)
{
if(rg.IsMatch(fi.FullName))
arr.Add(fi.FullName);
}
string[] arrNames = (string[])arr.ToArray(typeof(string));
picMain.Image = Image.FromFile(arrNames[0]);
}
用Regex的话性能更低,不信你试试