读书人

何监测一个文件夹中是否新增了图片[,该

发布时间: 2012-03-09 21:42:54 作者: rapoo

何监测一个文件夹中是否新增了图片[
我的设计要求是这样的:
有一个超速抓拍系统,由于抓拍的速度比较快,如果我每抓拍一次马上进行车牌的识别,由于我的算法比较烂,识别速度较慢,有些情况下跟不上抓拍的速度。因此我想先把抓拍的保存在一个文件夹中,单独创建一个线程进行车牌识别,当这个文件夹中新增了图片文件,我就对新增的进行识别处理。
可是不知道怎么实现这种方法。注:有可能一下子抓拍了两张到三张,我要一张一张的进行处理(由于系统限制:在识别某一张图片的时候,不能同时识别另一张,需要等到当前这张识别完之后才行)。

[解决办法]
看这个
[解决办法]
给你一个CFileSystemWatcher类的实现,仔细看一下就明白了,不难的。

C/C++ code
#pragma once#include "windows.h"#include <vector>using namespace std;#define MAX_BUF_LEN 100class CFileSystemWatcher{    typedef struct _FILEDATA    {        HANDLE hFile;        TCHAR szFolderName[MAX_PATH];        TCHAR szOldFile[MAX_PATH]; //仅使用在显示改变时        TCHAR szNewFile[MAX_PATH]; //仅使用在显示改变时        HANDLE hEvent;            HANDLE hThread;        DWORD dwThreadID;    }FILEDATA,*PFILEDATA;public:    CFileSystemWatcher();    ~CFileSystemWatcher(void);public:    static DWORD CALLBACK WorkProc(LPVOID lp);    HRESULT Work();    HRESULT AddFile(LPCTSTR lpFile);   //开启一个线程启动监听    static VOID CALLBACK FileIOCompletionRoutine(DWORD dwErrorCode,DWORD dwNumberOfBytesTransfered,LPOVERLAPPED lpOverlapped);        HRESULT Stop(); //停止所有线程,以例结束监视    void ShowFileChange(DWORD dwAction,const FILEDATA& fileData);private:    vector<FILEDATA> m_pfileDataList;    int m_fileCount;        //CRITICAL_SECTION m_cs;    }; 

读书人网 >VC/MFC

热点推荐