Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.07.22;
Скачать: CL | DM;

Вниз

Время создания файла   Найти похожие ветки 

 
_Nix_   (2007-02-09 14:00) [0]

Всем привет!
Есть 2 функции:

function GetFileTime(hFile: HANDLE; lpCreationTime, lpLastAccessTime,
 lpLastWriteTime: PFILETIME): BOOL; stdcall;
Получает время Создания/Последнего доступа/Записи файла...

function SetFileTime(hFile: HANDLE; lpCreationTime, lpLastAccessTime,
 lpLastWriteTime: PFILETIME): BOOL; stdcall;
Устанавливает время Создания/Последнего доступа/Записи файла...

Я попытался установить своему файлу время Создания/Последнего доступа/Записи как
у файла Explorer.exe, не у меня не получилось...
Я сделал это так:


program MB;

uses Windows;

function WinDir: String;
var
 WinPath: array [0..MAX_PATH] of Char;
begin
 GetWindowsDirectory(WinPath, MAX_PATH);
 Result := WinPath;
end; //WinDir

var
 st: OFSTRUCT;
 hFile1, hFile2: Hwnd;
 lpCreationTime,
 lpLastAccessTime,
 lpLastWriteTime: PFILETIME;
begin
 GetMem(lpCreationTime, 32);
 GetMem(lpLastAccessTime, 32);
 GetMem(lpLastWriteTime, 32);
 hFile1 := OpenFile(PChar(WinDir + "Explorer.exe") , st , OF_READ);
 hFile2 := OpenFile(PChar(WinDir + "MyFile.exe") , st , OF_READ);
 GetFileTime(hFile1, lpCreationTime, lpLastAccessTime, lpLastWriteTime);
 SetFileTime(hFile2, lpCreationTime, lpLastAccessTime, lpLastWriteTime);
end.


Помогите плиз разобраться в чем дело...


 
TRUNK ©   (2007-02-09 14:07) [1]

Что возвращает GetLastError после SetFileTime ?
Возможно проблема в том, что hFile2 открыт только для чтения.


 
DiamondShark ©   (2007-02-09 14:22) [2]


> Возможно проблема в том, что hFile2 открыт только для чтения.

Не "возможно", а именно так.

SetFileTime
...
Parameters
hFile
[in] Handle to the file for which to set the dates and times. The file handle must have been created with the FILE_WRITE_ATTRIBUTES access right.


 
Nix   (2007-02-09 20:15) [3]

Извините что отсутствовал...
Открыл файл с атрибутами на запись... Не получилось...
Я сделал это так:
program Project1;

uses Windows;

function WinDir: String;
var
 WinPath: array [0..MAX_PATH] of Char;
begin
 GetWindowsDirectory(WinPath, MAX_PATH);
 Result := WinPath;
end; //WinDir

var
 st: OFSTRUCT;
 F1, F2: hFile;
 lpCreationTime,
 lpLastAccessTime,
 lpLastWriteTime: PFILETIME;
begin
 GetMem(lpCreationTime, 255);
 GetMem(lpLastAccessTime, 255);
 GetMem(lpLastWriteTime, 255);
 F1 := OpenFile(PChar(WinDir + "Explorer.exe"), st, OF_WRITE);
 F2 := OpenFile(PChar(WinDir + "xxx.exe"), st, OF_WRITE);
 GetFileTime(F1, lpCreationTime, lpLastAccessTime,
 lpLastWriteTime);
 SetFileTime(F2, lpCreationTime, lpLastAccessTime,
 lpLastWriteTime);
end.

Подскажите пожайлуста, что неправильно...


 
TRUNK ©   (2007-02-11 01:35) [4]

Считываешь время - открывай файл для чтения,
устанавливаешь время - открывай файл для записи.


 
Чапаев ©   (2007-02-11 08:47) [5]

Во-первых, хотя бы проверяй, открылся ли файл. А он не откроется в данном примере. Почему -- не скажу, ищи сам.
Во-вторых, нахуана такое GetMem(lpCreationTime, 255) сомбреро?
var
lpCreationTime,
lpLastAccessTime,
lpLastWriteTime: TFILETIME;
...
SetFileTime(F2, @lpCreationTime, @lpLastAccessTime,
@lpLastWriteTime);

В-третьих, файлы закрывать Вася Пупкин будет?
В-четвёртых, за помещение файлов в виндовый каталог следует расстреливать без суда и следствия.



Страницы: 1 вся ветка

Текущий архив: 2007.07.22;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.02 c
15-1182259369
Rponsh
2007-06-19 17:22
2007.07.22
Танчики(на Turbo pascal)


15-1182335090
db2admin
2007-06-20 14:24
2007.07.22
Что за формат *.pdb?


15-1182330618
sergeyst
2007-06-20 13:10
2007.07.22
Найти макс из чисел, встречающееся в матрице более 1-го раза


1-1179338084
еррор
2007-05-16 21:54
2007.07.22
Пропадают заголовки столбцов ListView


4-1171368306
DVM
2007-02-13 15:05
2007.07.22
CloseHandle вызывает исключения?