想写一个监控文件夹的程序,请大家出出主意.

kornrock 2007-04-19 09:01:01
我想用c写一个监控文件夹的程序.
程序开始处于监控状态,当发现文件夹中有文件时,就遍历文件夹,对每个文件夹进行处理后删除。然后程序又回到监控状态.
请大侠们帮帮忙。谢谢。
...全文
381 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
xsiiao 2007-05-08
  • 打赏
  • 举报
回复
LINUX下的,你可以用,文件查找来做,当他查找失败时,就说明没有文件,如果成功说明已经有文件了.
hailongchang 2007-04-19
  • 打赏
  • 举报
回复
楼上的楼上写的就是C语言的,lz你的需求可以用API函数来实现

kornrock 2007-04-19
  • 打赏
  • 举报
回复
能不能给写个c的,c++不太会.
iu_81 2007-04-19
  • 打赏
  • 举报
回复
void MonitorDirectory(void)

{

HANDLE hDir;
char notify[1024];
DWORD cbBytes,i;
char AnsiChar[3];
wchar_t UnicodeChar[2];
FILE_NOTIFY_INFORMATION *pnotify=(FILE_NOTIFY_INFORMATION *)notify; FILE_NOTIFY_INFORMATION *tmp;
hDir = CreateFile( "C:\\Downloads", FILE_LIST_DIRECTORY, FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE, NULL, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS | FILE_FLAG_OVERLAPPED, NULL);
if (hDir == INVALID_HANDLE_VALUE)
{
printf("hDir:INVALID_HANDLE_VALUE");
return;
} /*
hChangeHandles = FindFirstChangeNotification("C:\\Downloads",FALSE,FILE_NOTIFY_CHANGE_FILE_NAME|FILE_NOTIFY_CHANGE_SIZE|FILE_NOTIFY_CHANGE_LAST_WRITE);
if (hChangeHandles == INVALID_HANDLE_VALUE)
{
printf("hChangeHandles:INVALID_HANDLE_VALUE");
return;
} */
while (TRUE)
{
if(ReadDirectoryChangesW(hDir, ¬ify, sizeof(notify), FALSE, FILE_NOTIFY_CHANGE_FILE_NAME| FILE_NOTIFY_CHANGE_LAST_WRITE, &cbBytes, NULL, NULL)) {
// printf("ReadDirectoryChangesW Success\n");
tmp = pnotify;
do
{
switch(tmp->Action)
{
case FILE_ACTION_ADDED:
printf("Directory/File added - ");
break;
case FILE_ACTION_REMOVED:
printf("Directory/File removed - ");
break;
case FILE_ACTION_MODIFIED:
printf("Directory/File modified - ");
break;
case FILE_ACTION_RENAMED_OLD_NAME:
printf("Directory/File old name - ");
break;
case FILE_ACTION_RENAMED_NEW_NAME: printf("Directory/File new name - "); break; default: break;
}//end switch
for(i=0;iFileNameLength/2;i++)
{
UnicodeChar[0]=tmp->FileName[i];
UnicodeChar[1]=0;
ZeroMemory(AnsiChar,3);
WideCharToMultiByte(CP_ACP,0,UnicodeChar,-1,AnsiChar,3,NULL,NULL);
printf("%s",AnsiChar); }
printf("\n");
if(tmp->NextEntryOffset !=0)
{
i = tmp->NextEntryOffset;
tmp = (PFILE_NOTIFY_INFORMATION) ((LPBYTE)tmp+i);
}
else
break;
}while(1); }//end if else printf("ReadDirectoryChangesW Error\n"); }//end while

}
jixingzhong 2007-04-19
  • 打赏
  • 举报
回复
程序开始处于监控状态,当发现文件夹中有文件时,就遍历文件夹,对每个文件夹进行处理后删除。然后程序又回到监控状态
============
不会是一点代码都没有吧?
kornrock 2007-04-19
  • 打赏
  • 举报
回复
这个api好像是windows的,在linux下不能用

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧