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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 01.09.2006, 16:58   #1  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5788 (200) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от Gustav
CreatedTime все равно остается от самого первого создания. Почему интересно? Если я через год воссоздам файл в этой же папке с тем же именем, то он мне нарисует дату создания файла годичной давности?
У меня дата создания сменилась после того, как я удалил файл и подождал примерно минуту перед подвторным запуском job'а и, соответственно, созданием файла. А вообще, можно озвучить постановку задачи? для чего все эти манипуляции?
За это сообщение автора поблагодарили: Gustav (5).
Старый 01.09.2006, 17:08   #2  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
спасибо, AndyD, ругаться перестало, но результат пока неверный получается...

Я опять-таки тупо заменил на:
DLLFunction _fileTimeToSystemTime = new DLLFunction(_winApiDLL, 'FileTimeToLocalFileTime')

теперь файл пересоздается, я это вижу в Проводнике и свойства его меняются, но в инфологе похожая картина, что и при втором прогоне исходного джоба:
Код:
C:\testtime.txt
Даты в формате ГГ ММ ДД
 
Время в формате ЧЧ ММ СС
00 00 00
Время "сейчас" в формате ЧЧ ММ СС
17 04 15
Что еще где-то надо подправить, наверное, но моральное истощение уже наступило и с WinAPI на эту тему ковыряться надоело... чувствую, что, видимо, прибегну через COM к безотказному Scripting.FileSystemObject. Он нормальные человеческие даты у файлов показывает

Последний раз редактировалось Gustav; 01.09.2006 в 19:23.
Старый 01.09.2006, 17:25   #3  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
Цитата:
Сообщение от gl00mie
У меня дата создания сменилась после того, как я удалил файл и подождал примерно минуту перед подвторным запуском job'а и, соответственно, созданием файла.
Я прямо сегодня в роли догоняющего по пятам
Да, я получил такой же эффект, уже набросав процедурку на VBA с использованием Scripting.FileSystemObject.
Цитата:
Сообщение от gl00mie
А вообще, можно озвучить постановку задачи? для чего все эти манипуляции?
Конечно, пожалуйста:

Хочу удалять из некоторой папки файлы, которые старше определенного "возраста". "Возраст" задается заранее и, грубо говоря, лежит в пределах от нескольких часов до нескольких дней (ну, месяц, например, максимум). Физически - это файлы некоторых отчетов пользователя (xls), которые он "нарезает" в процессе работы с Аксаптой.

Вы спросите, зачем сохранять xls-файлы, если пользователь может сам решить в Excel'е, сохранять или нет? В данном случае это принципиальное условие задачи. Если подход окажется удачным, я предполагаю распространить его не только на xls-файлы. Файлы сохраняются под страшными именами, включающими userID, дату, время, sessionID и, возможно, некий reportID, например, GUST_060901_174918_3_115.xls (хм... или reportID можно сразу после ника: GUST_115_060901_174918_3.xls - с точки зрения сортировки так наверное даже логичнее...)

Ну вот чтобы их не скапливалось в его персональной папке слишком много, я и решил приделать такую процедуру, которая будет его спрашивать "Не желаете ли уже почиститься, любезный?" А "возраст" дается ему для того, чтобы он мог за это время "перекинуть" особо важные отчеты в какую-нибудь другую свою личную папку уже на длительное хранение по своему желанию.

"Возраст" предполагается отсчитывать "в прошлое" от момента, определяемого timenow() при попытке запуска очередного отчета и, соответственно, проверять содержимое папки на наличие старых файлов.

P.S. В принципе, конечно, можно "забить" на эти 4 часа и использовать только целые дни (даты), отсчитываемые назад, начиная со "вчерашнего", но, как говорится, "народ хочет разобраться!"

Последний раз редактировалось Gustav; 01.09.2006 в 18:04.
Старый 01.09.2006, 18:12   #4  
somebody is offline
somebody
Участник
 
128 / 30 (2) +++
Регистрация: 30.04.2003
Адрес: Москва
Не понял...
Если дата и время включаются в имя файла, зачем заморачиваться с WinAPI? Вытащить из строки имени файла его дату и время и соответственно с файлом поступить. Зачем в его Windows Properties лазить?
За это сообщение автора поблагодарили: Gustav (5).
Старый 01.09.2006, 18:35   #5  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
Цитата:
Сообщение от somebody
Не понял...
Если дата и время включаются в имя файла, зачем заморачиваться с WinAPI? Вытащить из строки имени файла его дату и время и соответственно с файлом поступить. Зачем в его Windows Properties лазить?
Блин... Гениально! Я серьезно. Спасибо!

мда... надо же настолько себе замылить глаза за трудовую неделю... и ведь еще думал, добавлять ли это абзац про страшные имена; в итоге добавил в основном для себя...

В WinAPI я точно не полезу уже на эту тему, а вот с FSO еще немножко всё-таки подумаю... Просто думаю, как быть если юзер в пределах "возраста" еще раз обратится к файлу и сохранит его под старым именем, но фактически с более свежим "возрастом"... Допустим, возраст по имени будет "неделя", а по дате модификации 3 дня...

P.S. (включить и дату модификации тоже в строку названия ой йо)

Последний раз редактировалось Gustav; 01.09.2006 в 18:38.
Старый 01.09.2006, 19:06   #6  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
gl00mie, тоже респект - без вопроса "Для чего эти манипуляции?" я бы не вышел на ударную позицию и по ней не пробил бы somebody

AndyD, тоже "округлил" до 215, а то процесс пробуксовывал без уточнения LocalFile

Всех с пятницей!
Теги
time, winapi, время, файл

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Закупка на проект "Время и расходы" Sentry DAX: Функционал 6 19.02.2016 14:09
"An unexpected exception occurred" во время установки. Hub DAX: Администрирование 2 19.12.2009 12:09
Время по графику и фактическое время работы в табеле nicko DAX: Функционал 0 09.02.2005 15:24
Поле с типом "Время" Кирилл DAX: Программирование 9 06.05.2004 10:53
Установить время файла? SnowMan DAX: Программирование 5 01.10.2003 14:42

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 07:40.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.