AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 01.10.2003, 11:37   #1  
SnowMan is offline
SnowMan
Участник
 
57 / 10 (1) +
Регистрация: 15.08.2003
Адрес: Москва
? Установить время файла?
Необходимо с использованием x++ установить время файла, например:
для файла c:\test.txt установить текущее время.

Стандартного решения нет (или не нашел)
Немного расширил класс WinAPI - добавил недостающие функции и несколько исправил (сильно не пинайте, но там действительно есть ошибки... )
Написал job (см прилагаемый проект)

Все вроде работает правильно, НО
Обнаружил некоторую закономерность -
если устанавливаем время с четными секундами, то все работает правильно (см рис 1)


а если устанавливаем время с нечетными секундами, то появляется ошибка (см рис 2) Время модификации файла стремится стать четным в большую сторону


Такое поведение никак не может устроить

У кого-нибудь есть мысли как бороться?
а может у меня где ошибка?

PS
Axapta 3.0 ( Axapta 3.0 SP1 )
Вложения
Тип файла: xpo setfiletime.xpo (12.5 Кб, 597 просмотров)
Тип файла: img21016-1 (2.4 Кб, 734 просмотров)
Тип файла: img21016-2 (2.3 Кб, 760 просмотров)
__________________
Дмитрий Гришин
Старый 01.10.2003, 12:13   #2  
Джон is offline
Джон
Участник
 
39 / 10 (1) +
Регистрация: 05.08.2003
Попробовал у себя - все работает как часы, и по четным и по нечетным секундам при синхронизированном и при не синхронизированном клиенте (тоже 3.0 сп1 3х звенка).

А если не текущее время выставлять, а timenow() - 30 например, какое расхождение у created и modified будет?
Старый 01.10.2003, 12:44   #3  
SnowMan is offline
SnowMan
Участник
 
57 / 10 (1) +
Регистрация: 15.08.2003
Адрес: Москва
Цитата:
Изначально опубликовано Джон
А если не текущее время выставлять, а timenow() - 30 например, какое расхождение у created и modified будет?
отличается на 1 сек

Цитата:
Изначально опубликовано Джон
Попробовал у себя - все работает как часы, и по четным и по нечетным секундам при синхронизированном и при не синхронизированном клиенте (тоже 3.0 сп1 3х звенка).
Да, сейчас проверил у товарища на машине (цеплял его к своему AOS), все работает правильно...

Но я испытывал и на домашнем компьютере и на рабочем - время отличается.
Что за чудеса?!

Что у тебя за конфигурация машины? (Уже не знаю что и думать...)
мои конфигурации:
рабочий - 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  
SnowMan is offline
SnowMan
Участник
 
57 / 10 (1) +
Регистрация: 15.08.2003
Адрес: Москва
По-моему, причина ясна...

вся разнича в файловой системе... у меня везде - и дома и на работе FAT32

сейчас попробовал изменить время файла на томе с файловой системой NTFS все работает корректно!!!

Вот такие пироги, но от этого не становится легче...

Как быть клиентам у которых только FAT32 и Win9X?


Джон, у тебя есть доступ к томам с FAT32? Попробуй на нем поменять время файла, интересно что получится?
__________________
Дмитрий Гришин
Старый 01.10.2003, 13:31   #5  
Джон is offline
Джон
Участник
 
39 / 10 (1) +
Регистрация: 05.08.2003
SnowMan, ты прав, это 100пудово из-за FATа. Проверил на FATe: -1 при нечетных секундах. Еще попробовал прям из FARa выставлять у файлика modification date - при нечетных секундах искажает на секунду. При копировании с NFTS в FAT тоже искажает на секунду.
Старый 01.10.2003, 14:42   #6  
SnowMan is offline
SnowMan
Участник
 
57 / 10 (1) +
Регистрация: 15.08.2003
Адрес: Москва
Цитата:
Изначально опубликовано Джон
SnowMan, ты прав, это 100пудово из-за FATа. Проверил на FATe: -1 при нечетных секундах. Еще попробовал прям из FARa выставлять у файлика modification date - при нечетных секундах искажает на секунду. При копировании с NFTS в FAT тоже искажает на секунду.
Да, это точно... проверил у ребят, так и есть с фатом глючит...

Значит это баг MS Windows и FAT32...

Ну что ж, будем знать и учитывать

Хорошо, что разобрались...

PS
Славо богу, а то уж следующим моим шагом могла быть перестановка виндов...
обидно же, когда у тебя одного такие "чудеса"
__________________
Дмитрий Гришин
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Сохранение файла на веб сервере rDenis DAX: Программирование 8 25.03.2009 09:51
Как можно определить время окончания сводного планирования? Hidden DAX: Функционал 4 29.09.2006 13:02
Время созданного "сейчас" файла меньше timenow на 4 часа Gustav DAX: Программирование 20 04.09.2006 18:59
Возникла проблема с получением имени файла при создании своего канала вывода отчетов. oleg_kap DAX: Программирование 3 06.06.2006 14:12
Время по графику и фактическое время работы в табеле nicko DAX: Функционал 0 09.02.2005 15:24

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 07:52.