gpt4 book ai didi

c# - 如何使用 IListFileItem 在属性上使用 OrderByDescending?

转载 作者:行者123 更新时间:2023-12-03 02:57:06 29 4
gpt4 key购买 nike

我有以下代码,它将返回特定给定 Azure 存储路径的所有列表项(文件和文件夹)。

我想使用基于 Property LastModifiedOrderByDescending 对其进行过滤

如何实现这一目标?

 // Get list of all files/directories on the file share 
CloudStorageAccount cloudStorageAccount = CloudStorageAccount.Parse(ConfigurationManager.AppSettings["storageConnectionString"]);
CloudFileClient fileClient = cloudStorageAccount.CreateCloudFileClient();
CloudFileShare fileShare = fileClient.GetShareReference(ConfigurationManager.AppSettings["shareName"]);

var sourceName = fileShare.GetRootDirectoryReference().GetDirectoryReference((ConfigurationManager.AppSettings["sourceName"]));
IEnumerable<IListFileItem> fileList = sourceName.ListFilesAndDirectories();
var test = (fileList.OrderByDescending(t => t.Uri.AbsolutePath).FirstOrDefault());

我尝试进行强制转换,但 LastModified 为 null

            fileList.ToList().ForEach(x => ((CloudFileDirectory)x).FetchAttributes());
GetAllSubDir(fileList.OrderByDescending(t => ((CloudFileDirectory)t).Properties.LastModified.Value).FirstOrDefault());

我想使用LastModified,而不是Uri.AbsolutePath

最佳答案

尝试以下代码。您需要先获取所有文件,因为 ListFilesAndDirectories 只返回单个级别的文件和目录。

    List<CloudFile> list = new List<CloudFile>();

public void Test()
{
CloudStorageAccount cloudStorageAccount = CloudStorageAccount.Parse(ConfigurationManager.AppSettings["storageConnectionString"]);
CloudFileClient fileClient = cloudStorageAccount.CreateCloudFileClient();
CloudFileShare fileShare =
fileClient.GetShareReference(ConfigurationManager.AppSettings["shareName"]);

var sourceName = fileShare.GetRootDirectoryReference().GetDirectoryReference((ConfigurationManager.AppSettings["sourceName"]));
IEnumerable<IListFileItem> fileList = sourceName.ListFilesAndDirectories();
listFile(fileList);

var test = (from file in list
orderby file.Properties.LastModified descending
select file).FirstOrDefault();

}

// detect all files in the directory
public void listFile(IEnumerable<IListFileItem> results)
{
foreach (IListFileItem fileItem in results)
{
if (fileItem.GetType() == typeof(CloudFileDirectory))
{
CloudFileDirectory directory = (CloudFileDirectory)fileItem;
var res = directory.ListFilesAndDirectories();
listFile(res);
}
else
{
CloudFile file = (CloudFile)fileItem;
file.FetchAttributes();
list.Add(file);
}
}
}

关于c# - 如何使用 IListFileItem 在属性上使用 OrderByDescending?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52056174/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com