BCB使用线程删除文件夹中的图片

BCB新建线程DeleteImgThread类,其会默认继承Thread类,然后在Execute函数中编写代码,

void __fastcall DeleteImgThread::Execute()
{
    //---- Place thread code here ----
    while(!this->Terminated)
    {
        //删除.\RecvTmp中的图片
        AnsiString JepgDir = ExtractFilePath(ParamStr(0)) + "RecvTmp";
        TSearchRec sr;
        int iAttributes = faAnyFile;
        if (FindFirst(JepgDir+ "\\*.jpg", iAttributes, sr) == 0)
        {
            do
            {
                TDateTime JepgTime = FileDateToDateTime(sr.Time);
                if (Now()-1 > JepgTime)
                {
                    DeleteFile(JepgDir +  "\\"+ sr.Name);
                }
            }
            while(FindNext(sr) == 0);
        }
        FindClose(sr);
        Sleep(5000);
    }
}

这里声明了一个系统结构体SearchRec变量sr,用于遍历文件夹,文件,与FindFirst、FindNext配合使用,使用系统基本函数DeleteFile()删除文件,注意sr使用完之后一定要FindClose(sr),不然会导致句柄不断增加。一般使用系统变量的话都需要手动将其注销掉,不然会引起句柄不断增加。

创建好线程类之后,需要在主函数中声明调用

DeleteImgThread *DeleteImg;
DeleteImg = new DeleteImgThread(NULL);     // 清除以前接收的图片

new一个对象出来就一定要delete掉,切记!

//释放DeleteImgThread线程
if (DeleteImg)
{
    DeleteImg->Terminate();
    DeleteImg->Resume();
    DeleteImg->WaitFor();
    delete DeleteImg;
    DeleteImg=NULL;
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-19 21:39:38

BCB使用线程删除文件夹中的图片的相关文章

关于读取文件夹中的图片问题

每次写代码都离不开读取文件夹中的图片,每次都要重新写一遍,很是忧伤..... 之前在百度输入此问题时,会得到很多答案,然后根据别人的思路,可以随便就把代码写出来,所以也没积累,... 如今事情多了,感觉这种做法真的很浪费时间,还是稍微做下整理吧.... 先贴几个链接: http://blog.csdn.net/yimingsilence/article/details/40555861

PHP遍历、删除文件夹中的所有文件

1 <?php 2 header("Content-type:text/html;charset=utf-8"); 3 4 /** 5 * getDirFile 遍历文件夹中的所有文件 6 * @param $path 7 */ 8 function getDirFile($path){ 9 //判断是否是文件夹 10 if(is_dir($path)){ 11 //判断是否打开成功 12 if($handle = opendir($path)){ 13 14 //读取文件 15

如何删除文件夹中的文件?--【SVN系列集锦】

背景: 某年某月某日,菜鸟小美,向服务器SVN里面上传文件,上传了之后发现没有命名好,于是改名了重新上传,结果就重复了.为了删除,她开始了不懈的努力~ 请问: SVN服务端的文件夹是可以删除的,那么文件夹中的文件如何删除呢? 经过的度娘的帮助,很容易找到了解决方案,菜鸟小美总结如下: 1)右键SVN客户端文件 .Net新生入学——选择TortoiseSVN——选择Delete,即可删除.不过仅仅这样是不足够的. 2)提交改动过后的整个文件夹,这样就ok啦! 感受: 如果不去尝试,永远都停留在半山

java 删除文件夹中的所有文件及文件夹

删除文件夹(前提:文件夹为空以及InputStream和OutputStream等一些数据文件流关掉[close()],否则文件无法删除) //删除文件夹 public static void delFolder(String folderPath) { try { delAllFile(folderPath); //删除完里面所有内容 String filePath = folderPath; filePath = filePath.toString(); java.io.File myFil

循环读取文件夹中的图片matlab代码

参考:http://blog.csdn.net/guoxiaojie_415/article/details/21317323:http://blog.csdn.net/qikaihuting/article/details/70244416 本篇博文仅针对于循环读取指定文件夹下的图片文件,不涉及深度和层度遍历. Function函数 function [subdirpath] = RangTraversal(strPath) maindir = strPath; //strPath是strin

win7文件夹中的图片使用“XX图标”查看模式显示时,无法正常显示图片缩略图

系统: win7 详细症状描述: 进入含有图片的文件夹,选择"查看"菜单栏中的"超大图标"."大图标"等模式进行文件显示时,无法图片文件正常显示其缩略图. 问题解决: 我的电脑>>鼠标右键中点击"属性">>"控制面板\系统和安全\系统"中点击左侧"高级系统设置">>"系统属性"中点击"高级"并点击"性能

C# 获取某路径文件夹中全部图片或其它指定格式的文件名(全路径)

1.编写获取文件名(全路径)子函数 /////param///path:文件夹路径///suffix:后缀格式, 如bmp,txt///fileList:文件名存放///isSubcatalog:true遍历子文件夹,否则不遍历void getFiles(string path, string suffix, ref List<string> fileList, bool isSubcatalog) { string filename; DirectoryInfo dir = new Dire

创建、删除文件夹和文件夹里的文件

创建一个文件夹: public function index(){ if (!is_dir('d:/hl')) { mkdir('d:/hl'); }else{ echo '文件夹已经存在'; } } 创建层级文件夹: public function index(){ $path='d:/hl/a/b/c'; if (!is_dir($path)) { if (mkdir($path,0777,true)) { echo '创建文件夹成功'; }else{ echo '创建文件夹失败'; } }

JavaSE 文件递归之删除&amp;amp;获取文件夹文件夹中全部的以.jpg的文件的绝对路径

1.递归删除文件 假设一个文件夹以下还有子文件夹,进行删除的话会 报错,这个时候要使用递归的方式来删除这个文件文件夹中的全部文件以及文件夹 package cn.itcast.digui; import java.io.File; /** * 递归删除demo目录中全部文件包含目录 * 分析: * A:封装目录 * B:获取改目录下的全部文件或者目录 * C:遍历改file数组,得到每个File对象 * D:推断该file对象是都是目录 * 是:回到B * 否:删除 * @author Admi