Лучший способ перечислить файлы в Java, отсортированном по дате Измененный?

Я придумал следующее расширение:

public static class ObjectExtensions
{
    public static void SetValue<TValue>(this object @object, string propertyName, TValue value)
    {
        var property = @object.GetType().GetProperty(propertyName, BindingFlags.Public | BindingFlags.Instance);
        if (property?.CanWrite == true)
            property.SetValue(@object, value, null);
    }
}

, которое можно назвать глобально; это работает только в публичных свойствах.

myObject?.SetValue("MyProperty", new SomeObject());

Следующая улучшенная версия работает на что угодно,

public static void SetValue<TObject>(this TObject @object, Action<TObject> assignment)
{
    assignment(@object);
}

И также может быть вызвана глобально,

myObject?.SetValue(i => i.MyProperty = new SomeObject());

Но имя расширения несколько вводит в заблуждение, поскольку Action не требует исключительно назначения.

234
задан Török Gábor 21 June 2009 в 02:22
поделиться

2 ответа

Я думаю, что Вашим решением является единственный разумный путь. Единственный способ получить список файлов состоит в том, чтобы использовать , File.listFiles () и документация указывает, что это не делает гарантии о порядке файлов возвращенными. Поэтому необходимо записать Компаратор , который использует File.lastModified () , и передайте это, наряду с массивом файлов, к Arrays.sort () .

96
ответ дан Yishai 23 November 2019 в 03:31
поделиться

Вы могли бы также посмотреть апачское свободное городское население IO , это имеет созданный в последний измененный компаратор и много других хороших утилит для работы с файлами.

25
ответ дан ligi 23 November 2019 в 03:31
поделиться
Другие вопросы по тегам:

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