本人想检索指定目录下图片文件的创建时间,创建时间最新的文件赋值给picturebox1,是这样实现的:
string pathPic = @"D:\气象站\图片";
public struct sFileInfo //定义结构
{
public string FileName;
public DateTime FileCreateTime;
}
private void 图片timer_Tick(object sender, EventArgs e)
{
DirectoryInfo d = new DirectoryInfo(pathPic);
int n = 0; //获取数组长度n
foreach (FileInfo f in d.GetFiles())
{
if (f.Name.Substring(f.Name.Length - 3, 3) == "jpg")
{
n++;
}
}
//定义数组,并对数组进行赋值
sFileInfo[] ArrFiles = new sFileInfo[n];
int i = 0;
foreach (FileInfo f in d.GetFiles())
{
if (f.Name.Substring(f.Name.Length - 3, 3) == "jpg")
{
ArrFiles[i].FileName = f.Name;
ArrFiles[i].FileCreateTime = f.CreationTime;
i++;
}
}
//对数组根据文件创建时间进行冒泡排序
sFileInfo FileInfoTemp;
for (int k = 0; k < n - 1; k++)
{
for (int j = k + 1; j < n - 1; j++)
{
if (DateTime.Compare(ArrFiles[k].FileCreateTime, ArrFiles[j].FileCreateTime) < 0)
{
FileInfoTemp = ArrFiles[k];
ArrFiles[k] = ArrFiles[j];
ArrFiles[j] = FileInfoTemp;
}
}
}
pictureBox1.Image = Image.FromFile(pathPic + " \\ " + ArrFiles[n - 1].FileName );
}
但在执行的过程中出现了问题:
请各位大神不吝赐教
1、错误原因:" \\ " 中间两个空格。
2、优化:
a、d.GetFiles后,获取一次就足够了。
b、GetFiles得到的是FileInfo,FileInfo有FullName,干吗不用这个呢?
3、看你的代码,你的CODER路还很长哪。
谢谢大神指导
大神有时间了指点一下呗,不怎么懂优化啊,
空格那么大,我想去看看。
谢谢大神指导
空格就像个黑洞, 随时都能吸走不细心的程序猿
谢谢大神指导
一大篇的重复动作,看来资源很充足嘛。
谢谢大神指导