> ' This is the standard > ' total 4696 > ' drw-rw-rw- 1 user group 0 Feb 6 15:46 . > ' drw-rw-rw- 1 user group 0 Feb 6 15:46 .. > ' -rw-rw-rw- 1 user group 4825 May 3 2010 Account.png > ' -rw-rw-rw- 1 user group 5242 May 3 2010 Administration.png > ' -rw-rw-rw- 1 user group 4117 Apr 17 2011 Agent.png > ' -rw-rw-rw- 1 user group 1402 Dec 30 2005 AmazonCA.gif > ' -rw-rw-r-- 1 wliclus weblogic 308121 Jun 1 2011 tlv_01_jackk_2011615315_1185655_001_23327701.zip > > ' This is also another format we have to support > ' -r-xr-xr-x 1 owner group 78145990 Nov 4 2011 101.zip > ' -r-xr-xr-x 1 owner group 35492 Apr 14 2011 20110414.40E > ' -r-xr-xr-x 1 owner group 33583 Apr 14 2011 20110414.421 > ' -r-xr-xr-x 1 owner group 40815 Apr 14 2011 20110414.483 > ' -r-xr-xr-x 1 owner group 24836 Apr 14 2011 20110414.ARC > ' -r-xr-xr-x 1 owner group 4737 May 5 2011 4A16PBE1.txt > ' -r-xr-xr-x 1 owner group 4737 Jan 18 13:50 4A17A7B1.txt >>
> ' If this is a file > If lcLine.StartsWith("-") Then > > ' Get the character at position 42 > lcCharacter = Mid(lcLine, 42, 1) > > ' If this is a space > If lcCharacter = " " Then > lcFile = Mid(lcLine, 56) > lnSize = Val(Mid(lcLine, 34, 8)) > lcDate = Mid(lcLine, 43, 12) > Else > lcFile = Mid(lcLine, 60) > lnSize = Val(Mid(lcLine, 34, 14)) > lcDate = Mid(lcLine, 47, 12) > End If >>
static void Main(string[] args) { string[] lines = { @"drw-rw-rw- 1 user group 0 Feb 6 15:46 .", @"drw-rw-rw- 1 user group 0 Feb 6 15:46 ..", @"-rw-rw-rw- 1 user group 4825 May 3 2010 Account.png", @"-rw-rw-rw- 1 user group 5242 May 3 2010 Administration.png", @"-rw-rw-rw- 1 user group 4117 Apr 17 2011 Agent.png", @"-rw-rw-rw- 1 user group 1402 Dec 30 2005 AmazonCA.gif", @"-rw-rw-r-- 1 wliclus weblogic 308121 Jun 1 2011 tlv_01_jackk_2011615315_1185655_001_23327701.zip", @"-r-xr-xr-x 1 owner group 78145990 Nov 4 2011 101.zip", @"-r-xr-xr-x 1 owner group 35492 Apr 14 2011 20110414.40E", @"-r-xr-xr-x 1 owner group 33583 Apr 14 2011 20110414.421", @"-r-xr-xr-x 1 owner group 40815 Apr 14 2011 20110414.483", @"-r-xr-xr-x 1 owner group 24836 Apr 14 2011 20110414.ARC", @"-r-xr-xr-x 1 owner group 4737 May 5 2011 4A16PBE1.txt", @"-r-xr-xr-x 1 owner group 4737 Jan 18 13:50 4A17A7B1.txt" }; string pattern = @"^(?<Permissions>\S+)\s+(?<Links>\d+)\s+(?<User>\w+)\s+(?<Group>\w+)\s+(?<FileSize>\d+)\s+(?<Month>\w+)\s+(?<Day>\d+)\s+((?<Year>\d{4})|(?<Time>\d+:\d+(:\d+)?))\s+(?<FileName>\S+)$"; foreach (string line in lines) { Match m = Regex.Match(line, pattern); if (m.Success) { Console.WriteLine("Month {0}", m.Groups["Month"]); Console.WriteLine("Day {0}", m.Groups["Day"]); Console.WriteLine("Year {0}", m.Groups["Year"]); Console.WriteLine("Time {0}", m.Groups["Time"]); Console.WriteLine("Size {0}", m.Groups["FileSize"]); Console.WriteLine("FileName {0}", m.Groups["FileName"]); } else Console.WriteLine("No match"); } Console.ReadLine(); return; }