powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Изменить дату в атрибутах файла
8 сообщений из 8, страница 1 из 1
Изменить дату в атрибутах файла
    #35342077
Sergej_S
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как из фокса изменить в атрибутах файла дату его создания (на меньшую дату) ?
...
Рейтинг: 0 / 0
Изменить дату в атрибутах файла
    #35342259
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Через WinAPI SetFileTime
С уважением, Алексей
...
Рейтинг: 0 / 0
Изменить дату в атрибутах файла
    #35342305
http://forum.foxclub.ru/read.php?29,299985,300593#msg-300593
...
Рейтинг: 0 / 0
Изменить дату в атрибутах файла
    #35342340
Sergej_S
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо!
...
Рейтинг: 0 / 0
Изменить дату в атрибутах файла
    #35342876
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
12345вышелзайчикпогулятьhttp://forum.foxclub.ru/read.php?29,299985,300593#msg-300593
Ну и как вы через SetFileAttributes собираетесь поменять дату создания файла?
Может все-таки через SetFileTime, но это не так просто. Еще потребуется преобразовывать формат даты время через SetFileTime, LocalFileTimeToFileTime и пр...
С уважением, Алексей
...
Рейтинг: 0 / 0
Изменить дату в атрибутах файла
    #35342962
AleksMed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Там чуть ниже пост с PLB библой.
...
Рейтинг: 0 / 0
Изменить дату в атрибутах файла
    #35345476
Sergej_S
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо всем! Поискал по SetFileTime, надыбал на www.news2news.com/vfp/?example=399&function=23 готовую процедурину, отлично работает (только может для win98 надо подкорректировать, пока на ней не тестил).

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
LPARAMETERS cFName, tDate
* Izmenajet datu sozdanija,modifikacii faila ili papki.
* Return .t. (OK) ili .f.(error)

#DEFINE GENERIC_WRITE  0x40000000 
#DEFINE GENERIC_READ   0x80000000
#DEFINE FILE_SHARE_DELETE  4 
#DEFINE FILE_SHARE_READ    1 
#DEFINE OPEN_EXISTING      3 
#DEFINE FILE_FLAG_BACKUP_SEMANTICS 0x02000000
 
DECLARE INTEGER CreateFile IN kernel32;
    STRING lpFileName, INTEGER dwDesiredAccess,;
    INTEGER dwShareMode, INTEGER lpSecurityAttr,;
    INTEGER dwCreationDisp, INTEGER dwFlagsAndAttrs,;
    INTEGER hTemplateFile
 
LOCAL hFolder
 
* use CreateFile for Windows NT/XP/ 2000  and OpenFile for Win9/Me
hFolder = CreateFile(cFName, GENERIC_WRITE+GENERIC_READ,;
    FILE_SHARE_READ+FILE_SHARE_DELETE,  0 , OPEN_EXISTING,;
    FILE_FLAG_BACKUP_SEMANTICS,  0 )
 
IF hFolder = - 1   && failed to open
    RETURN .F.   && use GetLastError to get an error code
ENDIF
 
DECLARE INTEGER CloseHandle IN kernel32 INTEGER hObject
 
DECLARE INTEGER SetFileTime IN kernel32;
	INTEGER hFile, STRING lpCreationTime,;	
	STRING lpLastAccessTime, STRING lpLastWriteTime
 
DECLARE INTEGER SystemTimeToFileTime IN kernel32;
	STRING lpSystemTime, STRING @lpFileTime
 
DECLARE INTEGER LocalFileTimeToFileTime IN kernel32;
    STRING lpLocalFileTime, STRING @lpFileTime

LOCAL cSysTime, cFileTime, nResult
cFileTime = Repli(Chr( 0 ), 8 )
 
cSysTime = num2buf(Year(tDate)) + num2buf(Month(tDate)) +;
    num2buf(DOW(tDate, 0 )) + num2buf(Day(tDate)) +;
    num2buf(Hour(tDate)) + num2buf(Minute(tDate)) + Repli(Chr( 0 ), 4 )
 
* converting SYSTEMTIME data to FILITIME
= SystemTimeToFileTime(cSysTime, @cFileTime)
 
* in case your local time is different from UTC
= LocalFileTimeToFileTime(cFileTime, @cFileTime)
 
* file handle, created, last-access, last-write
nResult = SetFileTime(hFolder, cFileTime, cFileTime,  0 )
 
= CloseHandle(hFolder)  && important
RETURN (nResult <>  0 )

********************************************* 8  
FUNCTION num2buf(nValue)
	RETURN Chr(MOD(m.nValue, 256 )) + CHR(INT(m.nValue/ 256 ))
ENDFUNC 
...
Рейтинг: 0 / 0
Изменить дату в атрибутах файла
    #35345770
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, это все хорошо, но не забудьте, что файл может быть read-only. А вот тут вам потребуется SetFileAttributes.
С уважением, Алексей
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Изменить дату в атрибутах файла
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]