У меня есть список каталогов в родительском каталоге. Эти каталоги будут созданы в формате как 00001, 00002, 00003... так, чтобы тот с большим запаздывающим количеством был недавним. в вышеупомянутом экземпляре это 00003. Я хочу получить это программно.
спасибо за любую справку..
.NET 2:
private void button1_Click(object sender, EventArgs e) {
DirectoryInfo di = new DirectoryInfo(@"C:\Windows");
DirectoryInfo[] dirs = di.GetDirectories("*",
SearchOption.TopDirectoryOnly);
Array.Sort<DirectoryInfo>(dirs,
new Comparison<DirectoryInfo>(CompareDirs);
}
int CompareDirs(DirectoryInfo a, DirectoryInfo b) {
return a.CreationTime.CompareTo(b.CreationTime);
}
Попробуйте это:
var first = Directory.GetDirectories(@"C:\")
.OrderByDescending(x => x).FirstOrDefault();
Очевидно, заменить C: \
с путем пути родительского каталога.
Почему не делать что-то вроде этого:
string[] directories = Directory.GetDirectories(@"C:\temp");
string lastDirectory = string.Empty;
if (directories.Length > 0)
{
Array.Sort(directories);
lastDirectory = directories[directories.Length - 1];
}
Как насчет:
var greaterDirectory =
Directory.GetDirectories(@"C:\")
.Select(path => Path.GetFileName(path)) // keeps only directory name
.Max();
или
var simplest = Directory.GetDirectories(@"C:\").Max();