Главная страница
    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.041 c
15-1182259369
Rponsh
2007-06-19 17:22
2007.07.22
Танчики(на Turbo pascal)


15-1182701773
Kostafey
2007-06-24 20:16
2007.07.22
С днем рождения ! 24 июня


2-1182855821
Vazhik
2007-06-26 15:03
2007.07.22
Консольное приложение


2-1182875295
next22
2007-06-26 20:28
2007.07.22
TEdit..TButton и TImage


15-1182541836
ArtemESC
2007-06-22 23:50
2007.07.22
Спамеры уже добрались до телефонов...





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский