建立以系統時間為檔名的檔案
阿新 • • 發佈:2019-02-14
// 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下執行通過。
*
*/