读书人

怎么读取目录下的所有图片

发布时间: 2011-12-20 22:26:40 作者: rapoo

如何读取目录下的所有图片
protected void PopulateFiles(TreeNode nodeCurrent)
{
//Populate listview with files
string[] lvData = new string[4];

//clear list
InitListView();

if (nodeCurrent.SelectedImageIndex != 0)
{
//check path
if (Directory.Exists((string)getFullPath(nodeCurrent.FullPath)) == false)
{
MessageBox.Show( "不存在路径或没有数据 ");
}
else
{
try
{
string[] stringFiles = Directory.GetFiles(getFullPath(nodeCurrent.FullPath));
string stringFileName = " ";
DateTime dtCreateDate, dtModifyDate;
Int64 lFileSize = 0;
string FileDirectory = " ";

//loop throught all files
foreach (string stringFile in stringFiles)


{
stringFileName = stringFile;
FileInfo objFileSize = new FileInfo(stringFileName);
//objFileSize.
lFileSize = objFileSize.Length;
dtCreateDate = objFileSize.CreationTime; //GetCreationTime(stringFileName);
dtModifyDate = objFileSize.LastWriteTime; //GetLastWriteTime(stringFileName);
FileDirectory = objFileSize.DirectoryName;
//create listview data
lvData[0] = GetPathName(stringFileName);

lvData[1] = FileDirectory;

lvData[2] = formatSize(lFileSize);
lvData[3] = formatDate(dtCreateDate);
//lvData[4] = formatDate(dtModifyDate);

//Create actual list item


ListViewItem lvItem = new ListViewItem(lvData, 0);
this.listView1.Items.Add(lvItem);

listView1.SmallImageList = this.imageList2;
listView1.Items[0].ImageIndex = 0;

}
}
catch (IOException e)
{
MessageBox.Show( "Error: Drive not ready or directory does not exist. ");
}
catch (UnauthorizedAccessException e)
{
MessageBox.Show( "Error: Drive or directory access denided. ");
}
catch (Exception e)
{
MessageBox.Show( "Error: " + e);
}
}


}
}
这是一段读取目录文件的
我想怎么样只读取图片
比如是 jpg ,gif,bmp三种格式

[解决办法]
通过正则表达式排除其他类型的文件
if (!Regex.IsMatch(s, @ ".*\.(bmp|jpg|gif)$ ", RegexOptions.IgnoreCase))
continue;

也可以直接得到文件扩展名排除
if (! ".bmp.jpg.gif. ".Contains(Path.GetExtension(s).ToLower() + ". "))
continue;

读书人网 >C#

热点推荐