如何获取在云文件中修改文件的日期?
如何获取在云文件中修改文件的日期?如何获取在云文件中修改文件的日期?
我使用云文件中的.net SDK(不是机架空间nu获取软件包)。
我可以得到我的文件列表并调用GetStorageItemInformation大小,但我想知道文件何时放入云文件。如果我使用Cloudberry资源管理器应用程序,我会看到它有这些信息。
它在.net SDK中,并在哪里?
在遍历容器中的文件时,可以使用OpenStack.NET的ContainerObject.LastModified。这是一个控制台应用程序,其中列出了一个区域中的所有容器及其上次修改时间戳的文件。
using System;
using net.openstack.Core.Domain;
using net.openstack.Providers.Rackspace;
namespace CloudFilesDateModified
{
class Program
{
static void Main(string[] args)
{
const string region = "DFW";
var identity = new CloudIdentity { Username = "username", APIKey = "apikey" };
var cloudfiles = new CloudFilesProvider(identity);
foreach (Container container in cloudfiles.ListContainers(region:region))
{
Console.WriteLine($"Container: {container.Name}");
foreach (ContainerObject file in cloudfiles.ListObjects(container.Name, region: region))
{
Console.WriteLine($"\t{file.Name} - {file.LastModified}");
}
}
Console.ReadLine();
}
}
}
下面是一些样本输出
Container: test
foobar - 10/12/2015 2:00:26 PM -06:00
foobar/file.png - 11/6/2015 7:34:42 PM -06:00
foobar/index.html - 11/6/2015 7:34:31 PM -06:00
如果容器有超过10,000个文件,则需要通过所有的文件采用寻呼参数循环。在下面的例子中,我一次对结果100进行分页。
foreach (Container container in cloudfiles.ListContainers(region: region))
{
Console.WriteLine($"Container: {container.Name}");
int limit = 100;
string lastFileName = null;
IEnumerable<ContainerObject> results;
do
{
results = cloudfiles.ListObjects(container.Name, region: region, limit: limit, marker: lastFileName);
foreach (ContainerObject file in results)
{
Console.WriteLine($"\t{file.Name} - {file.LastModified}");
lastFileName = file.Name;
}
} while (results.Any());
}
很好。有没有简单的方法来获取所有的文件? ListObjects似乎获得了前10,000个。 – Maestro1024
我已经更新了答案,以包含如何在容器中的文件超过10,000个时通过结果进行翻页的示例。 –
您使用openstack.net软件包还是使用了不推荐使用的软件包csharp-cloudfiles? –
正在使用较旧的SDK,我认为这是问题所在。 – Maestro1024