// time_file.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "atlstr.h"
#include <stdio.h>
#include <stddef.h>
#include <time.h>
#include <windows.h>
#include <cstring>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
time_t t;
t = time(NULL);
struct tm* ptm;
ptm = localtime(&t);
CString strPath;
CString strDic;
strDic.Format("%s", "D:\\test_pic\\");
strPath.Format("%s_%d%02d%02d%02d%02d%02d%s", "V10", ptm->tm_year+1900, ptm->tm_mon+1, ptm->tm_mday,
ptm->tm_hour, ptm->tm_min, ptm->tm_sec, ".txt");
strPath = strDic+strPath;
//test
char lpBuffer[1024]= "abcedef";
int fileReturned = strlen(lpBuffer);
DWORD FileSaveReturned= 0;
SECURITY_ATTRIBUTES sa;
SECURITY_DESCRIPTOR sd;
InitializeSecurityDescriptor(&sd,SECURITY_DESCRIPTOR_REVISION);
SetSecurityDescriptorDacl(&sd,TRUE,NULL,FALSE);
sa.nLength = sizeof(SECURITY_ATTRIBUTES);
sa.bInheritHandle = TRUE;
sa.lpSecurityDescriptor = &sd;
CreateDirectory((LPCTSTR)"D:\\test_pic\\", &sa );
HANDLE hFile = CreateFile ( (LPCTSTR)strPath,
GENERIC_READ | GENERIC_WRITE,
0,
NULL,
CREATE_NEW,
FILE_ATTRIBUTE_NORMAL,
NULL );
if ( hFile != INVALID_HANDLE_VALUE )
{
WriteFile(hFile, lpBuffer, fileReturned, &FileSaveReturned, NULL);
CloseHandle(hFile);
}
return 0;
}
/*
*
*其中CreateFile不能在指定目錄下創建文件,用以上源碼爲例,當無D:\\test_pic目錄時,CeateFile返回的句柄爲空,但是如果有此目錄,就能夠正常調用。
*所以,應該在CreateFile之間創建D:\\test_pic目錄。
*注:此源碼在VS2010下運行通過。
*
*/