【发布时间】:2017-11-25 05:26:04
【问题描述】:
我创建了一项服务,它将每天将备份移动到磁盘。
但在移动备份之前,我需要检查磁盘的可用空间。 如果可用空间小于 1 TB,需要从磁盘中删除最旧的备份文件夹,然后继续备份
我使用以下代码获得了可用空间
DriveInfo driveInfo = new DriveInfo(@"H:");
long FreeSpace = (((driveInfo.AvailableFreeSpace) / 1024) / 1024 / 1024) / 1024;
现在我需要检查 FreeSpace 的值是否小于 1
if(FreeSpace < 1)
{
//need to delete the folder in the path H:\backup\
//whose created date is the oldest
}
例如:-
> If available space is less than 1 TB and H:\backup\ contain 3 folder
> 19062017 -- created on 19/06/2017
20062017 -- created on 20/06/2017
21062017 -- created on 21/06/2017
> We need to delete the folder 19062017 with its content
如何在 C# 中实现相同的目标
【问题讨论】:
-
为什么投反对票??
-
我认为使用作为日期的文件夹名称是最好的方法: DirectoryInfo info = new DirectoryInfo("folder").GetDirectories().AsEnumerable().OrderBy(x => DateTime.Parse( x.Name)).LastOrDefault(); info.Delete();
-
您的帖子有一半与您的问题无关。可用空间的计算与查找要删除的文件夹无关。您的问题实际上是“如何按名称枚举和排序文件夹?”如果你搜索一下,你会找到很多例子。