delphi获取文件的创建/修改时间、按时间删除指定文件下的文件

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls,DateUtils;

...

//获取文件的创建时间

function GetFileCreationTime(const FileName: String): TDateTime;

var

FileTime: TFileTime;

LocalFileTime: TFileTime;

hFile: THandle;

SystemTime: TSystemTime;

begin

Result := 0;

FileTime.dwLowDateTime := 0;

FileTime.dwHighDateTime := 0;

hFile := FileOpen(FileName, fmShareDenyNone);

try

if hFile <> 0 then

begin

Windows.GetFileTime(hFile, @FileTime, nil, nil);

FileTimeToLocalFileTime(FileTime, LocalFileTime);

FileTime := LocalFileTime;

end;

finally

FileClose(hFile);

end;

if FileTimeToSystemTime(FileTime, SystemTime) then

Result := SystemTimeToDateTime(SystemTime);

end;

//获取文件的修改时间

function GetFileEditTime(const FileName: String): TDateTime;

var

FileTime: TFileTime;

LocalFileTime: TFileTime;

hFile: THandle;

SystemTime: TSystemTime;

begin

Result := 0;

FileTime.dwLowDateTime := 0;

FileTime.dwHighDateTime := 0;

hFile := FileOpen(FileName, fmShareDenyNone);

try

if hFile <> 0 then

begin

Windows.GetFileTime(hFile, nil, nil, @FileTime);

FileTimeToLocalFileTime(FileTime, LocalFileTime);

FileTime := LocalFileTime;

end;

finally

FileClose(hFile);

end;

if FileTimeToSystemTime(FileTime, SystemTime) then

Result := SystemTimeToDateTime(SystemTime);

end;

调用:

edit1.text:=datetimetostr( GetFileEditTime(‘E:\test\D12000398C1.csv‘));

获取文件夹下的所有文件名称、按文件的修改时间删除指定的文件

procedure TForm1.Button2Click(Sender: TObject);

var

r:TsearchRec;

filelist:Tstringlist;

i:integer;

begin

filelist:=Tstringlist.create;

if findfirst(‘e:\test\‘+‘*.csv‘,faanyfile,r)=0 then filelist.add(r.name);

while findnext(r)=0 do

filelist.add(r.name);

findclose(r);

//这样filelist中就保存了你输入的文件夹下的所有文件,我下面显示在一个memo组件中了

for i:=0 to filelist.count-1 do

begin

if hoursBetween(GetFileEditTime(‘E:\test\‘+filelist[i]),Now)>48  then

begin

try

deletefile(‘E:\test\‘+filelist[i]);

except

end;

end;

//memo1.lines.text:=memo1.lines.text+filelist[i]+#13;

end;

filelist.free;

end;

原文地址:https://www.cnblogs.com/zhangzhifeng/p/9073600.html

时间: 2024-11-05 18:30:09

delphi获取文件的创建/修改时间、按时间删除指定文件下的文件的相关文章

删除指定目录下过期文件并打印日志

肯定会遇到这样的事,有一个文件夹,每天都在生成文件,那么如何去删除那些过期的文件呢.废话不多说,直接上代码: import java.io.BufferedWriter;import java.io.File;import java.io.FileWriter;import java.io.IOException;import java.text.SimpleDateFormat; public class DeleteFileImpl { //这三个变量也可以在配置文件里面配置,但是需要用到@

个人笔记:PHP递归删除指定目录下的文件和目录

function DelDir($path){ //给定的目录不是一个文件夹 if(!is_dir($path)){ return null; } // 1 打开目录 $dir =opendir($path); // 去除. 和.. while ($filename =readdir($dir)) { if ($filename =='.' || $filename == '..') { continue; } // 拼接完整路径,不拼接会到当前路径下找 $filepath =$path.'/'

删除指定目录下的文件及子文件

1, 所用到主要方法:opendir()   readdir()   unlink()  is_dir()  closedir() 2, 实现过程 function deldir ($dir) { //打开目录 $o_dir = opendir ($dir); //判断这个目录里是否有文件,如果是文件则删除,如果是目录则进入递归 while ($file = readir($o_dir)) { if ($file != '.' && $file != '..') { $dir_file =

JAVA之IO技术-获取指定目录下的文件夹和文件的File对象或是字符串名称。

package ioTest.io3; /* * 获取指定目录下的文件夹和文件的File对象或是字符串名称. * 也可以通过filter获取指定的文件夹或者指定类型的文件 * 这里面需要做一个总结,如何利用jdk的源码去理解不熟悉的方法的应用. */ import java.io.File; import java.io.FileFilter; import java.io.FilenameFilter; public class FileDemo2 { public static void m

删除指定路径下指定天数之前(以文件的最后修改日期为准)的文件

1 @echo off 2 ::删除指定路径下指定天数之前(以文件的最后修改日期为准)的文件. 3 ::本例需要Win2003/Vista/Win7系统自带的forfiles命令的支持 4 rem 指定待删除文件的存放路径 5 set SrcDir=D:\ajaxtrain\web 6 rem 指定天数 7 set DaysAgo=0 8 rem 要删除的文件通配 9 set searchmast=*.html 10 set filename=D:\ajaxtrain\web\deletefil

C#遍历指定路径下的文件夹

通过指定路径访问路径下的文件,在C#的开发中主要利用了Directory类和DirectoryInfo类,简要介绍Directory类中的成员:命名空间 System.IO 命名空间 1.CreateDirectory,已重载,用于创建指定路径下的所有目录: 2.Delete,删除指定目录: 3.Exists,确定给定目录是否引用磁盘现有目录:说白点就是判断路径是否存在: 4.GetCreationTime,获取目录的创建时间和日期: 4.GetCurrentDirectory,获取应用程序的当

Java版本的删除指定目录下名叫“xxx.txt”文件名的文件

以前写过一个python版本的,但是在查找文件路径的时候出现错误,无法正确的获取到文件的路径,就造成无法删除该路径下的“xxx.txt”文件. 当时以为是windows版本系统的错误造成这个问题的,也就没有继续深究,就把这个bug给放过了. 最近一段时间在学习android,肯定要用的java了,就用java实现了下,思路的话,肯定还是以前的了,结果还是出错,后来仔细的看了看代码,其实是自己的bug. 把代码贴下:(主要功能,删除指定目录下名叫"pylist.txt"的所有文件,使用递

Windows 定时删除指定路径下N天前的日志文件

Windows 下bat脚本文件的内容为 1. 删除指定路径下5天前的所有文件 . @echo off set SrcDir=E:\WORK\Git set DaysAgo=5 forfiles /p %SrcDir% /s /m *.*/d -%DaysAgo% /c "cmd /c del /f /q /a @path" 2.删除指定路径下5天前的所有log文件 @echo off set SrcDir=E:\WORK\Git //指定的路径 :5天前 set DaysAgo=5 

iOS案例:读取指定目录下的文件列表

// // main.m // 读取指定目录下的文件列表 // // Created by Apple on 15/11/24. // Copyright © 2015年 Apple. All rights reserved. // /* *读取指定目录下的文件列表 */ #import <Foundation/Foundation.h> void myQuickMethod(); int main(int argc, const char * argv[]) { //文件操作对象 NSFil

按创建日期删除指定日期之前的文件夹及文件夹下的所有子目录

转载void CTestDlg::DeleteDirectory(CString strDir) { if(strDir.IsEmpty()) return; //首先删除文件及子文件夹 CFileFind ff; BOOL bFound = ff.FindFile(strDir+"\\*", 0); while(bFound) { bFound = ff.FindNextFile(); CString filename = ff.GetFileName(); if(filename=