Сортировка файлов с использованием Visual Basic - PullRequest
0 голосов
/ 23 января 2012

как отсортировать файлы в каталоге?

у меня будет не более 500 файлов в следующем формате.

prod_orders_XXX_<TimeStamp>.dat 

XXX         =  symbol of the product and the length may varies between 3-6.
<TimeStamp> =  date and time

Возможно несколько файлов для одного и того же XXXс разными отметками времени.

Вот несколько примеров:

prod_orders_abc_20122001083000.dat 
prod_orders_abc_20122001083111.dat 
prod_orders_xyz_20122001093157.dat 
prod_orders_xyz_20122001083000.dat 
prod_orders_abc_20122001163139.dat 
prod_orders_abc_20122001093137.dat

1 Ответ

1 голос
/ 23 января 2012

Пожалуйста, предоставьте правильные образцы файлов и требования сразу же в следующий раз;)

Вот что вам нужно:

Dim fileList = (From file In New IO.DirectoryInfo(directoryPath).GetFiles()
          Where file.Name.IndexOf("prod_orders_") > -1
          Let dateIndex = file.Name.LastIndexOf("_") + 1
          Let dateIndexEnd = file.Name.LastIndexOf(".")
          Let datePart = file.Name.Substring(dateIndex, dateIndexEnd - dateIndex)
          Where datePart.Length = 14 AndAlso ULong.TryParse(datePart, 0)
          Let year = Int32.Parse(datePart.Substring(0, 4))
          Let day = Int32.Parse(datePart.Substring(4, 2))
          Let month = Int32.Parse(datePart.Substring(6, 2))
          Let hour = Int32.Parse(datePart.Substring(8, 2))
          Let minute = Int32.Parse(datePart.Substring(10, 2))
          Let second = Int32.Parse(datePart.Substring(12, 2))
          Let timestamp = New Date(year, month, day, hour, minute, second)
          Order By timestamp Descending
          Select file).ToList()
...