日期:2014-05-18  浏览次数:20469 次

今天的一道面试题,没做出来?
要求写个网页,把该网页当前目录下的图片文件按顺序读出来,
01
02
03
...


------解决方案--------------------
string path = Server.MapPath( ". ");
DirectoryInfo root = new DirectoryInfo(path);
int count = 0;
foreach (FileInfo fi in root.GetFiles())
{
if(fi.Extension== ".JPG " ||fi.Extension== ".GIF " || fi.Extension== ".BMP " ||................)
{
count++;
Response.Write(count + ": " + fi.Name+ " <br> ");
}
}
那个判断是否是图片格式的if语句最好别那么写,因为后缀名不区分大小写,而且还容易被恶意修改后缀名而欺骗,最好用文件的MIME类型来判断.
------解决方案--------------------
这个有点困难吧!~因为WD下有几种排序方式!~要怎么随WD的排序模式变化来相应的得到图片的排列顺序呢?
------解决方案--------------------
mark~~
目录操作~~
------解决方案--------------------
要排序还不好办?
你那些图片的名字都是什么01,02....09,....13.jpg?
这种名字的图片排序应该好排的把?
先把所有图片都找出来,截取名字的前面数字部分,保存在数组里,然后写个冒泡排序什么的然后输出不就OK了?
楼主想搞程序的不会连排序都不会写把?
------解决方案--------------------
其实这个题考的就是排序的问题.因为按照sort排序.他会01,10,12,02,03....这样排!最好读取文件后,自己写个排序的方法!!
------解决方案--------------------
先把文件都读取出来,然后排序
------解决方案--------------------
新建一个DataTable,加一列,然后把这些文件名都塞进去,用DataView对其排序,然后绑定输出,这是最傻瓜的做法,一切交给微软 :)
------解决方案--------------------
ArrayList al=new ArrayList();
System.IO.DirectoryInfo di=new System.IO.DirectoryInfo(Server.MapPath(@ "Image\ "));
System.IO.FileInfo[] fii=di.GetFiles();
foreach(System.IO.FileInfo fi in fii)
{
Response.Write(fi.Name+ " <br> ");

if(fi.Extension == ".jpg " || fi.Extension == ".gif " || fi.Extension== ".png " || fi.Extension== ".bmp ")
{
al.Add(fi.Name);
}

}
al.Sort();
for(int i=0;i <al.Count;i++)
{
Response.Write(al[i].ToString()+ " <br> ");
}