powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Получение атрибутов файла
16 сообщений из 16, страница 1 из 1
Получение атрибутов файла
    #37148328
MrFedor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.
Изложу вкратце мою ситуацию:

Пишу программу для слежки в папке и ее под папках за появлением нового файла, если он появился то отправляется email пользователю, у меня связка WinForms + Windows Service, т.е. форма в которой указываю папку и к ней привязываю список email адресов, все это сохраняется в xml файле. Запущен сервис в Windows в котором запускается слежка за папками при помощи FileSystemWatcher, если файл пришел то отправляется email уведомление, что мол в такую-то папку пришел такой-то файл.

Загвоздка в следующем:

В сервисе после того, как приходит файл идет проверка атрибутов этого файла, если он скрытый то не слать email, т.к. FileSystemWatcher порождает событие даже тогда, когда просто открывают файл для редактирования (там создается временный фал, к примеру Word "~$кумент Microsoft Word" , а при сохранение еще добавляется "~wrf0000.tmp" или же при открытии OpenOffice ".~lock.Текстовый документ OpenDocument.odt#" ). Происходит ложная отправка email.

При получении атрибутов файла к примеру просто Word (.docx) так и OpenOffice (.odt) пробовал при помощи GetFileInfo (там есть Attributes) и GetAttr , получаю Archive{32} . После того как открывают файл Word, появляется "~$кумент Microsoft Word" имеющий атрибут FileAttribute.Hidden Or FileAttribute.Archive{34} , а вот файл "~wrf0000.tmp" и ".~lock.Текстовый документ OpenDocument.odt#" имеют так же атрибуты Archive{32} , на которых и происходит ложное срабатывание.

Вопрос: Как отфильтровать все временные файлы, дабы избежать ложной отправки email?
...
Рейтинг: 0 / 0
Получение атрибутов файла
    #37148662
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще, в папке для отправки редактирования не должно быть... То есть вам надо просто (макросом там, например) сохранять копию нужного файла в нужную папку - это и будет информация для отправки.
...
Рейтинг: 0 / 0
Получение атрибутов файла
    #37148703
Фотография VSVLAD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1) Отсеивать файлы по расширениям
2) Отсеивать файлы если имеется аттрибут скрытый
...
Рейтинг: 0 / 0
Получение атрибутов файла
    #37148708
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как отфильтровать все временные файлы, дабы избежать ложной отправки email?По расширению, разве нет?
...
Рейтинг: 0 / 0
Получение атрибутов файла
    #37149018
MrFedor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AndreTMВообще, в папке для отправки редактирования не должно быть... То есть вам надо просто (макросом там, например) сохранять копию нужного файла в нужную папку - это и будет информация для отправки.
Макрос не подойдет, просто есть программа которая раскладывает файлы по папкам, т.е. уже все фиксировано, нужно именно в тех папках и отлавливать появление файлов.

VSVLAD1) Отсеивать файлы по расширениям
2) Отсеивать файлы если имеется аттрибут скрытый
Я тоже придерживаюсь такой логики, но тогда как определиться с тем, какие расширения бывают у скрытых файлов? Заведомо то не известно какой файл придет. Сложно перечислить все расширения (либо где найти инфу какие бывают расширения у скрытых файлов, но я такого не нашел)...
...
Рейтинг: 0 / 0
Получение атрибутов файла
    #37149122
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MrFedorVSVLAD1) Отсеивать файлы по расширениям
2) Отсеивать файлы если имеется аттрибут скрытый
Я тоже придерживаюсь такой логики, но тогда как определиться с тем, какие расширения бывают у скрытых файлов? Заведомо то не известно какой файл придет. Сложно перечислить все расширения (либо где найти инфу какие бывают расширения у скрытых файлов, но я такого не нашел)...Вообще никакой логики в этом тексте.

Либо проверяем атрибут "скрытый" и не важно, какое у файла расширение — считаем, что это мусор, и в почту не пускаем. Либо сравниваем название/расширение со списком расширений блокировочных файлов, а их не так много.
...
Рейтинг: 0 / 0
Получение атрибутов файла
    #37149204
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MrFedorAndreTMВообще, в папке для отправки редактирования не должно быть... То есть вам надо просто (макросом там, например) сохранять копию нужного файла в нужную папку - это и будет информация для отправки.
Макрос не подойдет, просто есть программа которая раскладывает файлы по папкам, т.е. уже все фиксировано, нужно именно в тех папках и отлавливать появление файлов.
Тоже противоречие. Если "раскладкой" занимается отдельная прога - то откуда у вас взялось редактирование этих самых разложеннных файлов?
Кроме того, ваш алгоритм всё равно приводит к тому, что файл отправляется только один раз - ведь после редактирования его атрибуты (за исключением даты-времени модификации) остаются всё теми же. Или вы подразумеваете, что этот ваш сервис как раз должен отслеживать события для "неотправки"?
В любом случае - остаюсь при своем мнении. Уже подготовленные файлы должны быть доступны только программам и сервисам, а не пользователям (например, для просмотра). Пользователю должна отдаваться копия.
...
Рейтинг: 0 / 0
Получение атрибутов файла
    #37149240
MrFedor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
1. Файлы находятся в сетевых папках и сотрудники могут заходить и открывать их для просмотра или печати (редактировать могут, но чаше не делают это), отсюда получаются временные файлы...
2. Вся проблема именно в том, что при помощи функции получения атрибута (GetFileInfo или же GetAttr), она не показывает их как Hidden, а показывает именно как Archive, такие же атрибуты имеет к примеру и обычный Word документ. Если бы атрибут был Hidden, то не возникло бы вопроса... Следовательно, можно некие файлы фильтровать по атрибуту Hidden, а проблемные файлы по расширению, но какой перечень этих расширений не знаю...
Вот и спрашиваю, может есть какое-то более разумное решение.
...
Рейтинг: 0 / 0
Получение атрибутов файла
    #37149267
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2. Вероятно у них атрибут System.
но какой перечень этих расширений не знаюДля ворда знаете? Знаете. Для OO? Тоже. Что мешает составить список из того, что знаете, и пополнять его по мере попадания в почту новых левых файлов?
...
Рейтинг: 0 / 0
Получение атрибутов файла
    #37149288
MrFedor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Antonariy2. Вероятно у них атрибут System.
Для ворда знаете? Знаете. Для OO? Тоже. Что мешает составить список из того, что знаете, и пополнять его по мере попадания в почту новых левых файлов?
У них точно не System.
Скорее всего так и придется, по мере появления левых файлов, просто добавлять в исключения.
Я просто думал есть, какое-то решение, может кто сталкивался...
...
Рейтинг: 0 / 0
Получение атрибутов файла
    #37149344
MrFedorМакрос не подойдет, просто есть программа которая раскладывает файлы по папкам, т.е. уже все фиксировано, нужно именно в тех папках и отлавливать появление файлов.
Научите эту программу устанавливать файлам атрибут readonly. По отсутствию коего и отлавливайте временные файлы.
...
Рейтинг: 0 / 0
Получение атрибутов файла
    #37149385
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пробуй камнемНаучите эту программу устанавливать файлам атрибут readonly. Это чужая программа, ее ничему не научишь.
авторможет кто сталкивался
У вас слишком специфические условия :) А сам себя в них никто не поставит.
...
Рейтинг: 0 / 0
Получение атрибутов файла
    #37149426
Antonariy,
ТС нигде не указывал, что программа "чужая".
Надежда умирает последней(с).
...
Рейтинг: 0 / 0
Получение атрибутов файла
    #37149638
MrFedor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
СавсемГостьAntonariy,
ТС нигде не указывал, что программа "чужая".
Надежда умирает последней(с).
Программа стороннего разработчика, в ней я не сделаю readonly... Приходится извращаться и искать пути обхода...
...
Рейтинг: 0 / 0
Получение атрибутов файла
    #37150143
ZVI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При открытия на редактирование файлов MS Office, эти и временные файлы, открываются с эксклюзивными правами ( см. LockFile Function ), что вероятно и может служить искомым принаком.

Проверить, открыт ли файл эксклюзивно, можно так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Function IsOpen(File$) As Boolean
  Dim FN%
  FN = FreeFile
  On Error Resume Next
  Open File For Random Access Read Write Lock Read Write As #FN
  Close #FN
  IsOpen = Err
End Function

Sub Test()
  MsgBox IsOpen("C:\Test.xls")
End Sub
...
Рейтинг: 0 / 0
Получение атрибутов файла
    #37150145
ZVI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще есть организационный вариант - установить полный доступ к папке только для сторонней программы, а всем пользователям дать право только на чтение в этой папке.
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Получение атрибутов файла
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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