C#: что самый простой путь состоит в том, чтобы отсортировать имена каталогов и выбрать новый?

У меня есть список каталогов в родительском каталоге. Эти каталоги будут созданы в формате как 00001, 00002, 00003... так, чтобы тот с большим запаздывающим количеством был недавним. в вышеупомянутом экземпляре это 00003. Я хочу получить это программно.

спасибо за любую справку..

7
задан satya 19 January 2010 в 11:01
поделиться

4 ответа

.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);
    }
3
ответ дан 6 December 2019 в 12:51
поделиться

Попробуйте это:

var first = Directory.GetDirectories(@"C:\")
   .OrderByDescending(x => x).FirstOrDefault();

Очевидно, заменить C: \ с путем пути родительского каталога.

8
ответ дан 6 December 2019 в 12:51
поделиться

Почему не делать что-то вроде этого:

string[] directories = Directory.GetDirectories(@"C:\temp");
string lastDirectory = string.Empty;

if (directories.Length > 0)
{
    Array.Sort(directories);
    lastDirectory = directories[directories.Length - 1];
}
3
ответ дан 6 December 2019 в 12:51
поделиться

Как насчет:

var greaterDirectory =
    Directory.GetDirectories(@"C:\")
        .Select(path => Path.GetFileName(path)) // keeps only directory name
        .Max();

или

var simplest = Directory.GetDirectories(@"C:\").Max();
1
ответ дан 6 December 2019 в 12:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: