Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2007.07.22;
Скачать: [xml.tar.bz2];

Вниз

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

 
_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 вся ветка

Форум: "WinAPI";
Текущий архив: 2007.07.22;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.046 c
15-1182493788
CCill
2007-06-22 10:29
2007.07.22
Как организовать загрузку в безопастном режиме?


15-1182614392
mc2!
2007-06-23 19:59
2007.07.22
Button focus dots


11-1165826709
Greeg
2006-12-11 11:45
2007.07.22
Как сделать подсветку синтаксиса с помощью HIlightMemo?


3-1177135365
SerMaxx
2007-04-21 10:02
2007.07.22
Вопрос по TQuery, запрос


15-1182220353
Slider007
2007-06-19 06:32
2007.07.22
С днем рождения ! 19 июня 2007 вторник





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский