Вверх ↑
Этот топик читают: Гость
Ответов: 2060
Рейтинг: 28
#1: 2007-01-16 22:22:38 ЛС | профиль | цитата
В HiAsm есть компонент FileAttributes а вот DirAttributes нет. Мне нужен такой компонент, что бы узнавать время создания, модификации и т. п. паки. Это мне нужно для своего проводника.
карма: 1

0
Администрация
Ответов: 15295
Рейтинг: 1519
#2: 2007-01-16 22:24:17 ЛС | профиль | цитата
Эдик, а что такое время модификации для папки?)
карма: 27
0
Ответов: 2060
Рейтинг: 28
#3: 2007-01-16 22:29:11 ЛС | профиль | цитата
Dilma, ну хорошо я может немножечко загнул. Тогда хотя бы время создания.

[size=-2]------ Добавлено в 22:29
Dilma писал(а):
Эдик, а что такое время модификации для папки?)

Как что - это "Изменён" У меня этот столбик есть в обычном проводнике
карма: 1

0
Ответов: 9906
Рейтинг: 351
#4: 2007-01-16 22:36:24 ЛС | профиль | цитата
Dilma, а ведь должно быть.
Папка это тоже файл, очень грубо говоря - StrListEx

[size=-2]------ Добавлено в 22:36
Давно было желание убрать из FileAttributes использование OpenFile, а делать только GetFileAttributesEx ...
карма: 9

0
Администрация
Ответов: 15295
Рейтинг: 1519
#5: 2007-01-16 22:42:09 ЛС | профиль | цитата
Да согласен.
карма: 27
0
Ответов: 9906
Рейтинг: 351
#6: 2007-01-18 07:46:02 ЛС | профиль | цитата
А вот размер папки GetFileAttributesEx давать отказывается, почему-то
Ну не может же папка с 5000 файлов совсем не занимать место на диске.
Особенно, если имена файлам Эдик давал...

И в FPC почему-то GetFileAttributesEx под комментом. Там, похоже, все под комментом, что не работало в какой-нибудь 95-й...
карма: 9

0
Ответов: 70
Рейтинг: 1
#7: 2017-03-10 14:35:38 ЛС | профиль | цитата
Здравствуйте! Пилю менялку дат создания/изменения/открытия для файлов и папок.
Компонент FileAttributes полностью справляется со сменой дат у файлов. Даже умеет читать даты каталогов, а вот СМЕНИТЬ дату каталогу он не способен.
Помогите Модифицировать код.

Add(FileAttributes,5993030,322,427)
{
FileName="0000"
Format="YMDhms"
Point(AccessDate)
Point(ModifyDate)
link(FileName,13037855:Value,[(328,419)(265,419)])
link(CreateDate,7842882:Value,[])
link(AccessDate,7516964:Value,[(349,366)(370,366)])
link(ModifyDate,10964272:Value,[(356,377)(398,377)])
}
Add(FormatStr,15987095,252,252)
{
DataCount=0
Mask="2002-12-17-17-23-48"
link(onFString,4432740:doConvert,[])
}
Add(DateConvertor,4432740,294,252)
{
Mode=8
Format="yyyy-MM-dd-hh-mm-ss"
link(onResult,10964272:doValue,[])
}
Add(Memory,10964272,392,252)
{
}
Add(MainForm,15551238,105,266)
{
Caption="Пример использования FileAttributes"
link(onCreate,1958925:doEvent1,[])
}
Add(Memory,13037855,259,378)
{
Default=String(.\\0\\)
}
Add(FormatStr,7140595,252,441)
{
DataCount=0
Mask="0"
link(onFString,5993030:doSetDate,[])
}
Add(Hub,1958925,161,280)
{
OutCount=4
link(onEvent1,15987095:doString,[(221,286)(221,258)])
link(onEvent2,1197378:doString,[])
link(onEvent3,3355825:doString,[(213,300)(213,328)])
link(onEvent4,7140595:doString,[(200,307)(200,447)])
}
Add(FormatStr,1197378,252,287)
{
DataCount=0
Mask="2001-10-03-07-22-15"
link(onFString,10979279:doConvert,[])
}
Add(DateConvertor,10979279,294,287)
{
Mode=8
Format="yyyy-MM-dd-hh-mm-ss"
link(onResult,7516964:doValue,[])
}
Add(Memory,7516964,364,287)
{
}
Add(FormatStr,3355825,252,322)
{
DataCount=0
Mask="2011-03-02-22-14-18"
link(onFString,1480937:doConvert,[])
}
Add(DateConvertor,1480937,294,322)
{
Mode=8
Format="yyyy-MM-dd-hh-mm-ss"
link(onResult,7842882:doValue,[])
}
Add(Memory,7842882,336,322)
{
}

карма: 0

0
Ответов: 4631
Рейтинг: 749
#8: 2017-03-10 15:00:22 ЛС | профиль | цитата
В коде компонента (функция THIFileAttributes._work_doSetDate) в функции CreateFile предпоследний параметр должен стоять FILE_FLAG_BACKUP_SEMANTICS.
Ну, и вместо GENERIC_WRITE наверное можно поставить FILE_WRITE_ATTRIBUTES(=256).

Редактировалось 3 раз(а), последний 2017-03-10 15:06:00
карма: 26

0
Ответов: 70
Рейтинг: 1
#9: 2017-03-10 15:18:18 ЛС | профиль | цитата
Netspirit, спасибо!
Замена "GENERIC_WRITE" на "FILE_WRITE_ATTRIBUTES(=256)" привела к тому, что проект не скомпилировался, но даже без этой правки теперь всё работает и с файлами и с папками.
Надеюсь, что это включат в SVN
карма: 0

0
Ответов: 4631
Рейтинг: 749
#10: 2017-03-10 15:21:31 ЛС | профиль | цитата
Заменять GENERIC_WRITE там надо было либо на 256, либо на {FILE_WRITE_ATTRIBUTES=}256, чтобы видно было что это за "256", поскольку в имеющихся заголовочных файлах константа FILE_WRITE_ATTRIBUTES не объявлена.
карма: 26

0
Разработчик
Ответов: 26170
Рейтинг: 2127
#11: 2017-03-10 15:38:40 ЛС | профиль | цитата
MBTY писал(а):
Надеюсь, что это включат в SVN

Пофиксил на SVN
карма: 22

0
11
Сообщение
...
Прикрепленные файлы
(файлы не залиты)