天天看點

C#實作對指定檔案夾中檔案按修改時間排序 

string path = "~/Document/Introduction/團隊管理制度/";

            DirectoryInfo dirinfo = new DirectoryInfo(Server.MapPath(path));

            FileInfo[] Files = dirinfo.GetFiles();

            Array.Sort<FileInfo>(Files, new FIleLastTimeComparer());

//在頁面上顯示最近更新的兩個檔案的下載下傳連結

            for (int i = 0; i < 2; i++)

            {

                Literal literal = new Literal();

                literal.Text = "</br>";

                Panel1.Controls.Add(literal);//實作換行顯示

                HyperLink hypelink = new HyperLink();

                hypelink.NavigateUrl = path + Files[i].Name;

                hypelink.Text = Files[i].Name;

                Panel1.Controls.Add(hypelink);

           }

public class FIleLastTimeComparer : IComparer<FileInfo>

    {

        public int Compare(FileInfo x, FileInfo y)

        {

            return y.LastWriteTime.CompareTo(x.LastWriteTime);//遞減

          //return x.LastWriteTime.CompareTo(y.LastWriteTime);//遞增

        }

    }

using System.IO;

private void button1_Click(object sender, EventArgs e)

{

//DirectoryInfo[] list = new DirectoryInfo(path).GetDirectories();// path:檔案夾路徑

DirectoryInfo[] list = new DirectoryInfo(@"D:軟體").GetDirectories();

Array.Sort<DirectoryInfo>(list, new DirectoryLastTimeComparer());

textBox1.Text = list[list.Length - 1].FullName;//檔案夾的全路徑以及名字

textBox1.Text = list[list.Length - 1].Name; //檔案夾的名字

}

private void button2_Click(object sender, EventArgs e)

{

FileInfo[] list = new DirectoryInfo(@"D:軟體").GetFiles();

Array.Sort<FileInfo>(list, new FIleLastTimeComparer());

textBox1.Text = list[list.Length - 1].FullName;//檔案的全路徑以及名字

textBox1.Text = list[list.Length - 1].Name; //檔案的名字

}

}

//檔案夾中按時間排序最新的檔案讀取

public class DirectoryLastTimeComparer : IComparer<DirectoryInfo>

{

#region IComparer<DirectoryInfo> 成員

public int Compare(DirectoryInfo x, DirectoryInfo y)

{

return x.LastWriteTime.CompareTo(y.LastWriteTime);

//依名稱排序

//return x.FullName.CompareTo(y.FullName);//遞增

//return y.FullName.CompareTo(x.FullName);//遞減

//依修改日期排序

//return x.LastWriteTime.CompareTo(y.LastWriteTime);//遞增

//return y.LastWriteTime.CompareTo(x.LastWriteTime);//遞減

}

#endregion

}

//檔案夾中按時間排序最新的檔案讀取

public class FIleLastTimeComparer : IComparer<FileInfo>

{

#region IComparer<FileInfo> 成員

public int Compare(FileInfo x, FileInfo y)

{

return x.LastWriteTime.CompareTo(y.LastWriteTime);

}

#endregion

}

就可以使用Array.Sort()方法來對其進行調用。當然,你也可以按建立時間來進行排序。