01.10.2003, 11:37 | #1 |
Участник
|
Установить время файла?
Необходимо с использованием x++ установить время файла, например:
для файла c:\test.txt установить текущее время. Стандартного решения нет (или не нашел) Немного расширил класс WinAPI - добавил недостающие функции и несколько исправил (сильно не пинайте, но там действительно есть ошибки... ) Написал job (см прилагаемый проект) Все вроде работает правильно, НО Обнаружил некоторую закономерность - если устанавливаем время с четными секундами, то все работает правильно (см рис 1) а если устанавливаем время с нечетными секундами, то появляется ошибка (см рис 2) Время модификации файла стремится стать четным в большую сторону Такое поведение никак не может устроить У кого-нибудь есть мысли как бороться? а может у меня где ошибка? PS Axapta 3.0 ( Axapta 3.0 SP1 )
__________________
Дмитрий Гришин |
|
01.10.2003, 12:13 | #2 |
Участник
|
Попробовал у себя - все работает как часы, и по четным и по нечетным секундам при синхронизированном и при не синхронизированном клиенте (тоже 3.0 сп1 3х звенка).
А если не текущее время выставлять, а timenow() - 30 например, какое расхождение у created и modified будет? |
|
01.10.2003, 12:44 | #3 |
Участник
|
Цитата:
Изначально опубликовано Джон
А если не текущее время выставлять, а timenow() - 30 например, какое расхождение у created и modified будет? Цитата:
Изначально опубликовано Джон
Попробовал у себя - все работает как часы, и по четным и по нечетным секундам при синхронизированном и при не синхронизированном клиенте (тоже 3.0 сп1 3х звенка). Но я испытывал и на домашнем компьютере и на рабочем - время отличается. Что за чудеса?! Что у тебя за конфигурация машины? (Уже не знаю что и думать...) мои конфигурации: рабочий - PIV -1,8 Mhz 512Mb Win2000 SP3 Eng - работает неверно домашний - PIV -1,6 Mhz ~1Gb Win2000 SP3 Rus - работает неверно товарища - PIV -1,7 Mhz 256Gb Win2000 SP3 Rus - работает верно Испытывал аксапту 3.0 и с сервис паком и без него, в двухзвенке и в трехзвенке PS Сейчас буду пробовать отключать все фоновые процессы, может они как-то влияют...
__________________
Дмитрий Гришин |
|
01.10.2003, 13:04 | #4 |
Участник
|
По-моему, причина ясна...
вся разнича в файловой системе... у меня везде - и дома и на работе FAT32 сейчас попробовал изменить время файла на томе с файловой системой NTFS все работает корректно!!! Вот такие пироги, но от этого не становится легче... Как быть клиентам у которых только FAT32 и Win9X? Джон, у тебя есть доступ к томам с FAT32? Попробуй на нем поменять время файла, интересно что получится?
__________________
Дмитрий Гришин |
|
01.10.2003, 13:31 | #5 |
Участник
|
SnowMan, ты прав, это 100пудово из-за FATа. Проверил на FATe: -1 при нечетных секундах. Еще попробовал прям из FARa выставлять у файлика modification date - при нечетных секундах искажает на секунду. При копировании с NFTS в FAT тоже искажает на секунду.
|
|
01.10.2003, 14:42 | #6 |
Участник
|
Цитата:
Изначально опубликовано Джон
SnowMan, ты прав, это 100пудово из-за FATа. Проверил на FATe: -1 при нечетных секундах. Еще попробовал прям из FARa выставлять у файлика modification date - при нечетных секундах искажает на секунду. При копировании с NFTS в FAT тоже искажает на секунду. Значит это баг MS Windows и FAT32... Ну что ж, будем знать и учитывать Хорошо, что разобрались... PS Славо богу, а то уж следующим моим шагом могла быть перестановка виндов... обидно же, когда у тебя одного такие "чудеса"
__________________
Дмитрий Гришин |
|
|
|