Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Изменить дату в атрибутах файла / 8 сообщений из 8, страница 1 из 1
29.05.2008, 10:20
    #35342077
Sergej_S
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменить дату в атрибутах файла
Как из фокса изменить в атрибутах файла дату его создания (на меньшую дату) ?
...
Рейтинг: 0 / 0
29.05.2008, 11:01
    #35342259
Aleksey-K
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменить дату в атрибутах файла
Через WinAPI SetFileTime
С уважением, Алексей
...
Рейтинг: 0 / 0
29.05.2008, 11:09
    #35342305
Изменить дату в атрибутах файла
http://forum.foxclub.ru/read.php?29,299985,300593#msg-300593
...
Рейтинг: 0 / 0
29.05.2008, 11:16
    #35342340
Sergej_S
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменить дату в атрибутах файла
Спасибо!
...
Рейтинг: 0 / 0
29.05.2008, 13:11
    #35342876
Aleksey-K
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменить дату в атрибутах файла
12345вышелзайчикпогулятьhttp://forum.foxclub.ru/read.php?29,299985,300593#msg-300593
Ну и как вы через SetFileAttributes собираетесь поменять дату создания файла?
Может все-таки через SetFileTime, но это не так просто. Еще потребуется преобразовывать формат даты время через SetFileTime, LocalFileTimeToFileTime и пр...
С уважением, Алексей
...
Рейтинг: 0 / 0
29.05.2008, 13:29
    #35342962
AleksMed
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменить дату в атрибутах файла
Там чуть ниже пост с PLB библой.
...
Рейтинг: 0 / 0
30.05.2008, 12:22
    #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
30.05.2008, 13:49
    #35345770
Aleksey-K
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменить дату в атрибутах файла
Да, это все хорошо, но не забудьте, что файл может быть read-only. А вот тут вам потребуется SetFileAttributes.
С уважением, Алексей
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Изменить дату в атрибутах файла / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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