Как сделать проверку последней модификации 2 файлов. Т.е. если не
равна то что то делать. Пробовал через CFile::GetStatus но не
получается. Как то непонятно он показывает время.
И еще вопросик. Как можно переписать открытый файл? В тотале
переписывает а вот CopyFile с параметров последним false не хочет.
Может как нибудь по другому? Помогите.
Здравствуйте, Ched, Вы писали:
C>Как сделать проверку последней модификации 2 файлов. Т.е. если не
C>равна то что то делать. Пробовал через CFile::GetStatus но не
C>получается. Как то непонятно он показывает время.
функция GetFileTime, пример из МСДН
// GetLastWriteTime - retrieves the last-write time and converts the
// time to a string
// Return value - TRUE if successful, FALSE otherwise
// hFile - must be a valid file handle
// lpszString - pointer to buffer to receive string
BOOL GetLastWriteTime(HANDLE hFile, LPSTR lpszString)
{
FILETIME ftCreate, ftAccess, ftWrite;
SYSTEMTIME stUTC, stLocal;
// Retrieve the file times for the file.
if (!GetFileTime(hFile, &ftCreate, &ftAccess, &ftWrite))
return FALSE;
// Convert the last-write time to local time.
FileTimeToSystemTime(&ftWrite, &stUTC);
SystemTimeToTzSpecificLocalTime(NULL, &stUTC, &stLocal);
// Build a string showing the date and time.
wsprintf(lpszString, "%02d/%02d/%d %02d:%02d",
stLocal.wDay, stLocal.wMonth, stLocal.wYear,
stLocal.wHour, stLocal.wMinute);
return TRUE;
}
Хендл к файлу можно получить с пом. функции CreateFile.
Здравствуйте, aid2003, Вы писали:
A>Здравствуйте, Ched, Вы писали:
C>>Как сделать проверку последней модификации 2 файлов. Т.е. если не
C>>равна то что то делать. Пробовал через CFile::GetStatus но не
C>>получается. Как то непонятно он показывает время.
A>функция GetFileTime, пример из МСДН
A>
A>// GetLastWriteTime - retrieves the last-write time and converts the
A>// time to a string
A>// Return value - TRUE if successful, FALSE otherwise
A>// hFile - must be a valid file handle
A>// lpszString - pointer to buffer to receive string
A>BOOL GetLastWriteTime(HANDLE hFile, LPSTR lpszString)
A>{
A> FILETIME ftCreate, ftAccess, ftWrite;
A> SYSTEMTIME stUTC, stLocal;
A> // Retrieve the file times for the file.
A> if (!GetFileTime(hFile, &ftCreate, &ftAccess, &ftWrite))
A> return FALSE;
A> // Convert the last-write time to local time.
A> FileTimeToSystemTime(&ftWrite, &stUTC);
A> SystemTimeToTzSpecificLocalTime(NULL, &stUTC, &stLocal);
A> // Build a string showing the date and time.
A> wsprintf(lpszString, "%02d/%02d/%d %02d:%02d",
A> stLocal.wDay, stLocal.wMonth, stLocal.wYear,
A> stLocal.wHour, stLocal.wMinute);
A> return TRUE;
A>}
A>
A>Хендл к файлу можно получить с пом. функции CreateFile.
Да время не самое главное. Мне надо заменить открытую базу данных новой.
Кароче произвести обновление. Файл он не хочет заменять. И не
открывает его на запись. Как мне этого добиться помогите плиииз. Через
тотал пробовал нормалдьно он все заменяет открытую базу.
Здравствуйте, Ched, Вы писали:
2conductor — полегче с цитированием
Что Вам GetLastError возвращает?
Здравствуйте, conductor, Вы писали:
C>Здравствуйте, Ched, Вы писали:
C>Что Вам GetLastError возвращает?
Вот с такими параметрами открывает. Но не записывает в него,
повидимому открывает на чтение.
hFile2 = CreateFile(PathFile, WRITE_OWNER|WRITE_DAC, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
Помогите найти нужные параметры.
Только что тестил и вот что
получается:
Запускаю прогу и база данных моя открыта и используется. Запускаю
акссесс и изменю поле и сохраняю и все нормально изменяется в моей
проге. Значит как то можно открыть файл на запись и переписать новым
( ну или дописать). Помогите пожалуйста.