Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
尝试删除早于x天的文件vb.net_Vb.net_File_Windows Services_Find_Delete File - Fatal编程技术网

尝试删除早于x天的文件vb.net

尝试删除早于x天的文件vb.net,vb.net,file,windows-services,find,delete-file,Vb.net,File,Windows Services,Find,Delete File,我有一段基本代码,用于删除给定目录中的文本文件: For Each file As IO.FileInfo In New IO.DirectoryInfo(filePath).GetFiles("*.txt") If (Now - file.CreationTime).Days > intdays Then file.Delete() Next filePath是文件所在的目录 intdays是一个变量,用于确定文件应保留多少天 为了测试代码,我将intdays设置为0,

我有一段基本代码,用于删除给定目录中的文本文件:

For Each file As IO.FileInfo In New IO.DirectoryInfo(filePath).GetFiles("*.txt")
    If (Now - file.CreationTime).Days > intdays Then file.Delete()
    Next
filePath
是文件所在的目录

intdays
是一个变量,用于确定文件应保留多少天

为了测试代码,我将intdays设置为0,假设它将删除directoy中的任何文件。但是它不会,但不会产生错误


“现在”的时间是2012年8月2日13:59:00,大于0。但是我不明白为什么不删除文件?

日期之间的差异不到一天

您正在调用
Days
属性,这是一个整数类型-对于小于一天的间隔,这将是
0

我已经对它进行了测试

        Dim d = New Date(2012, 11, 21, 16, 0, 0)
        Dim dGreater = New Date(2012, 11, 21, 17, 0, 0)
        Dim result = dGreater - d
        Console.WriteLine(result.Days)

因此,当您减去差值小于一天的日期时,结果的
Days
属性为0,即截断为较小的整数值。

您可能希望使用
LastWriteTime
而不是
CreateTime
,取决于您试图实现的目标。

当您减去差值小于1天的日期时,TimeSpan zero的days属性不应该是吗?感谢您的清除,出于测试目的,我将其更改为>=并删除了文件。我将等待一天,并将其设置为>,以查看它是否工作。@ASmith:或者您可以使用TotalDays属性,它是一个小数,因此12小时的时间跨度将为0.5 TotalDays。@a Smith:为什么要等待?将本地时间向后设置几天并创建文件,或者如果您在本地计算机上没有足够的权限来创建文件,只需(暂时)修改
if
以立即读取
。AddDays(3)