我有大量文件存储在Data Lake Store中 - 我现在需要获取最新的文件。
因为我没有找到更好的方法,我目前的方法是列出所有文件并查看修改日期。但是,我怀疑在处理更大的文件集时会出现一些问题。 API通过调用以下方法来限制它:
var statuses = _client.FileSystem.ListFileStatus(_store._dlsAccountName, "/the/path", 2);
这只会给我2个文件。但是,它们似乎按字母顺序返回。
有人知道如何:
答案 0 :(得分:2)
如您所述,函数 ListFileStatus 结果未按修改时间排序。我也找不到在Microsoft.Azure.Management.DataLake.Store SDK中列出最长文件的函数。
更改列表文件状态返回结果的方式?
是的,由于FileStatus有modification time属性,我们可以列出包含以下代码的最新文件。
var number = 2;
var statuses = _client.FileSystem.ListFileStatus(_store._dlsAccountName, "/the/path").FileStatuses.FileStatus.ToList().OrderByDescending(x=>x.ModificationTime).Take(number);
我测试了它,它工作正常。