这可以帮助你,如果我理解正确的话你: https://msdn.microsoft.com/enus/library/windows/desktop/aa365261(v=vs.85).aspx
这里是一个工作示例:
#include <windows.h>
#include <stdio.h>
#define DIR_PATH L"C:\\temp\\files"
void encrypt(WCHAR* fileName);
OVERLAPPED overlapped = {0};
union {
FILE_NOTIFY_INFORMATION i;
char d[sizeof(FILE_NOTIFY_INFORMATION)+MAX_PATH];
} fni;
int main()
{
HANDLE hDirectory;
BOOL res;
DWORD bytesReturned;
// Create handle for the directory
hDirectory = CreateFileW(DIR_PATH, FILE_LIST_DIRECTORY | GENERIC_READ,FILE_SHARE_READ | FILE_SHARE_WRITE,NULL,OPEN_EXISTING, FILE_FLAG_OVERLAPPED | FILE_FLAG_BACKUP_SEMANTICS,NULL);
overlapped.hEvent = CreateEvent(0,0,0,0);
// Monitor as long as running
while (1)
{
res = ReadDirectoryChangesW(hDirectory,(LPVOID)&fni,sizeof(fni),FALSE,FILE_NOTIFY_CHANGE_SIZE,
&bytesReturned,&overlapped,NULL);
// Error checking
if (res == 0)
{
printf("error: %d\n",GetLastError());
return 1;
}
// check if a new file has been created in the directory
GetOverlappedResult(hDirectory,&overlapped,&bytesReturned,TRUE);
if (fni.i.Action != 0)
encrypt(fni.i.FileName);
}
}
//This is the encryption function
void encrypt(WCHAR* fileName)
{
wprintf(L"Encrypting code here!\nFileName=%ls\n",fileName);
}
只需更换DIR_PATH和编辑加密功能
(我的第一次在这里回答btw ^^)
来源
2016-09-23 11:30:30
Efi
在C++中,您可以监视一个目录以显示新文件。在Linux上,你在Windows上使用了某些东西。 –
我假设在用于上载文件的Java应用程序中存在某种类型的文件上载事件处理程序,这些文件也将其保存在服务器上。如果是这种情况,那么你只需要在那之后执行C++应用程序。 – Archer