I have the following code:
int main(int argc, char** argv) {
onelog a;
std::cout << "a new project";
//creates a file as varuntest.txt
ofstream file("C:\\users\\Lenovo\\Documents\\varuntest.txt", ios::app);
SYSTEMTIME thesystemtime;
GetSystemTime(&thesystemtime);
thesystemtime.wDay = 07;//changes the day
thesystemtime.wMonth = 04;//changes the month
thesystemtime.wYear = 2012;//changes the year
//creation of a filetimestruct and convert our new systemtime
FILETIME thefiletime;
SystemTimeToFileTime(&thesystemtime,&thefiletime);
//getthe handle to the file
HANDLE filename = CreateFile("C:\\users\\Lenovo\\Documents\\varuntest.txt",
FILE_WRITE_ATTRIBUTES, FILE_SHARE_READ|FILE_SHARE_WRITE,
NULL, OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL, NULL);
//set the filetime on the file
SetFileTime(filename,(LPFILETIME) NULL,(LPFILETIME) NULL,&thefiletime);
//close our handle.
CloseHandle(filename);
return 0;
}
Now the question is; it only changes the modified date when I check the properties of the file. I need to ask;
How to change the file’s creation date instead of the modification
date?
Thanks
Please give some code for this novice.
It sets the last modified time because that’s what you asked it to do. The function receives 3 filetime parameters and you only passed a value to the final one,
lpLastWriteTime. To set the creation time call the function like this:I suggest you take a read of the documentation for
SetFileTime. The key part is its signature which is as follows:Since you say that you are a novice with the Windows API I’ll give you a tip. The documentation on MSDN is very comprehensive. Whenever you get stuck with a Win32 API call, look it up on MSDN.
And some comments on your code:
filenameshould in fact be namedfileHandle.