ASP til ASP.NET - sortning af mapper.

Jeg har det med at kigge på diverse online communities, gerne dagligt, og kan jeg nå det så også flere gange dagligt. En sjov ting er, at der generelt er rigtig godt gang i ASP og PHP foraerne rundt omkring. Det er ikke skidt, men kunne man oplyse dem alle sammen om at der oftes findes en nemmere, hurtigere og sjovere vej ud af deres script problem, så kunne det være de ligefrem blev glade :)

Jeg har derfor valgt at dedikere noget tid til at svare på spørgsmål som kommer fra nogle af de bedste online communities i Danmark.

Der er en her der spørger på Eksperten: https://www.eksperten.dk/spm/837313

Løsningen er ikke så nem og ligetil i ASP/VBScript (se et eksempel på det her), men med lidt C# eller VB.NET, krydret med lidt LINQ, ja så er den sag hurtigt ude af verden. Se selv:

Download VB koden.
Download C# koden.

C# udgaven:

    1:  using System;
    2:  using System.Linq;
    3:  using System.Xml.Linq;
    4:  using System.IO;
    5:   
    6:  public partial class _Default : System.Web.UI.Page
    7:  {
    8:      protected void Page_Load( object sender, EventArgs e )
    9:      {
   10:          //Få vores mapper ud i et array
   11:          DirectoryInfo[] dirInfo = new DirectoryInfo( @"C:\Users\danielmf\Documents" ).GetDirectories();
   12:   
   13:          var query = from dirs in dirInfo
   14:                      orderby dirs.LastWriteTime
   15:                      select dirs;
   16:   
   17:          XDocument xDoc = new XDocument(
   18:              new XElement( "mapper", from singleDir in query
   19:                                     select new XElement("mappe", 
   20:                                         new XAttribute("sidstSkrevetTil", singleDir.LastWriteTime),
   21:                                         new XElement("navn", singleDir.Name))
   22:                                     )
   23:              );
   24:   
   25:          Response.Write( xDoc );
   26:      }
   27:  }

VB udgaven:

    1:  Imports System
    2:  Imports System.Linq
    3:  Imports System.Xml.Linq
    4:  Imports System.IO
    5:   
    6:  Partial Class _Default
    7:      Inherits System.Web.UI.Page
    8:   
    9:      Public Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
   10:          'Få vores mapper ud i et array
   11:          Dim dirInfo() As DirectoryInfo = New DirectoryInfo("C:\Users\danielmf\Documents").GetDirectories()
   12:   
   13:          Dim query = From dirs In dirInfo _
   14:                      Order By dirs.LastWriteTime _
   15:                      Select dirs
   16:   
   17:          Dim xDoc As New XDocument(New XElement("mapper", From singleDir In query _
   18:                                                           Select New XElement("mappe", New XAttribute("sidstSkrevetTil", singleDir.LastWriteTime), New XElement("navn", singleDir.Name))))
   19:   
   20:          Response.Write(xDoc)
   21:   
   22:      End Sub
   23:   
   24:  End Class