Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> пометить файл, способы... 
V
    Опции темы
shara
Дата 4.3.2010, 23:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 344
Регистрация: 29.6.2004
Где: печенье?

Репутация: нет
Всего: 2



всем драсте

столкнулся с такой вот трудностью:
хочу каким-то образом в Windows'е пометить определенный файл одной программой чтобы потом другая прога могла его "опознать" среди всего множества файлов в ФС, без дополнительного участия пользователя. программа которая ищет "свой" файлы - резедентно висит  в системе.

надумал пока следующие варианты:
  •  опознавать файл по его имени
    например, если путь к файлу "С:\dir\MyFile.txt" то это нужный файл.
    смущает два вопроса, первый 
      ГДЕ хранить список с именами файлов? 
    второй
      КАК быть в случае когда файл принесен с другого компа, например на флешке, а он уже был помечен на том компе.
  •  помечать имя файла 
    например, если обычный файл имел имя "MyFile.txt" то помеченный будет иметь имя "MARK_MyFile.txt"
      главный недостаток что имя файла уж очень легко изменить... крайне ненадежно
     и к тому-же может возникнуть крайне не приятная путаница с английскими буквами которые похожи на русские. английское 'A' и русское 'А' визуально почти не отличимы
  •  дописывать в конец файла свой блок информации
    и по наличию этого блока у файла уже опознавать файл
      очень смущает тот факт что при этом  изменяется размер целевого файла. и плюс ко всему накладные расходы на открытие и чтение конца для ВСЕХ потенциально  "своих" файлов - сильно замедлит работу системы.
  •  использовать потоки
    то есть к целевому файлу прикрутить поток с определенным именем. и по наличию у файла потока с именем ":MyStraem" выносить вердикт свой\чужой
     единственный главный недостаток такого метода в том, что потоки поддерживаются не всему ФС. NTFS поддерживает потоки, а вот FAT - нет. и при копировании файла у которого есть потоки на FAT все информация о потоках будет утеряна
Windows же как-то помечает файлы Скрытй, Архивный, Шифрованный, Только_Для_Чтения... можно ли как-то нечто подобное использовать и в своих целях?


Это сообщение отредактировал(а) shara - 4.3.2010, 23:08


--------------------
   с точки зрения аэродинамики шмель не может летать  
PM MAIL   Вверх
GoldFinch
Дата 4.3.2010, 23:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Завсегдатай
Сообщений: 2141
Регистрация: 30.11.2008

Репутация: 15
Всего: 26



если файл имеет какую-то константную уникальную часть, можно использовать ее хеш

какбэ все зависит от задачи.
PM MAIL ICQ   Вверх
shara
Дата 5.3.2010, 00:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 344
Регистрация: 29.6.2004
Где: печенье?

Репутация: нет
Всего: 2



может быть абсолютно любой файл, который ОСь позволит конечному юзверю прочитать

задача пометить файл в одной программе и затем опознать его в другой

(желательно чтобы метод был максимально переносимым)


--------------------
   с точки зрения аэродинамики шмель не может летать  
PM MAIL   Вверх
korian
Дата 5.3.2010, 00:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 651
Регистрация: 8.3.2008
Где: Украина, Харьков

Репутация: 3
Всего: 17



Цитата(shara @  4.3.2010,  22:04 Найти цитируемый пост)
Windows же как-то помечает файлы Скрытй, Архивный, Шифрованный, Только_Для_Чтения... можно ли как-то нечто подобное использовать и в своих целях?

FAT поддерживает эти аттрибуты (кроме шифрованный), поэтому есть возможность их переносить.
любой из способов решения этой задачи будет читом в той или иной степени.
как вариант: устанавливать определенную дату создания, изменения или доступа к файлу.
PM   Вверх
shara
Дата 5.3.2010, 00:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 344
Регистрация: 29.6.2004
Где: печенье?

Репутация: нет
Всего: 2



Цитата(korian @  4.3.2010,  23:28 Найти цитируемый пост)
юбой из способов решения этой задачи будет читом в той или иной степени

согласен



Цитата(korian @  4.3.2010,  23:28 Найти цитируемый пост)
как вариант: устанавливать определенную дату создания, изменения или доступа к файлу. 

вариант. предпочту оставить сей способ на самый крайний случай..


--------------------
   с точки зрения аэродинамики шмель не может летать  
PM MAIL   Вверх
Ln78
Дата 5.3.2010, 06:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 274
Регистрация: 25.11.2006

Репутация: 13
Всего: 15



Цитата(shara @  4.3.2010,  23:04 Найти цитируемый пост)
хочу каким-то образом в Windows'е пометить определенный файл одной программой чтобы потом другая прога могла его "опознать" среди всего множества файлов в ФС, без дополнительного участия пользователя.

Если файловая система NTFS, то можно использовать дополнительные потоки.
PM MAIL   Вверх
azesmcar
Дата 5.3.2010, 08:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 81
Всего: 211



shara

Зачем эти шаманские штучки? Залей пути к файлам в определенный файл или в регистры и читай из другой программы.
По поводу атрибутов, нужно иметь возможность помечать любой файл или какой-то определенный тип?
Можешь почитать тут, вроде похожая проблема
http://social.msdn.microsoft.com/Forums/en...94-14c1729eb15b

Цитата(shara @  4.3.2010,  23:04 Найти цитируемый пост)
  КАК быть в случае когда файл принесен с другого компа, например на флешке, а он уже был помечен на том компе.

Тут как посмотреть, зависит от задачи, в принципе этот файл хоть и был помечен, но был помечен не тобой и не на твоем компьютере, да и копия файла это уже другой файл. Тебе виднее как надо.

Это сообщение отредактировал(а) azesmcar - 5.3.2010, 08:56
PM   Вверх
shara
Дата 5.3.2010, 19:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 344
Регистрация: 29.6.2004
Где: печенье?

Репутация: нет
Всего: 2



Ln78
Цитата(Ln78 @  5.3.2010,  05:30 Найти цитируемый пост)
Если файловая система NTFS, то можно использовать дополнительные потоки. 


Цитата(shara @  4.3.2010,  22:04 Найти цитируемый пост)
 использовать потоки
то есть к целевому файлу прикрутить поток с определенным именем. и по наличию у файла потока с именем ":MyStraem" выносить вердикт свой\чужой
 единственный главный недостаток такого метода в том, что потоки поддерживаются не всему ФС. NTFS поддерживает потоки, а вот FAT - нет. и при копировании файла у которого есть потоки на FAT все информация о потоках будет утеряна


Цитата(azesmcar @  5.3.2010,  07:42 Найти цитируемый пост)
По поводу атрибутов, нужно иметь возможность помечать любой файл или какой-то определенный тип?
 да, любой



Цитата(azesmcar @  5.3.2010,  07:42 Найти цитируемый пост)
Тут как посмотреть, зависит от задачи, в принципе этот файл хоть и был помечен, но был помечен не тобой и не на твоем компьютере, да и копия файла это уже другой файл. Тебе виднее как надо.
 интересует тот факт что файл ВООБЩЕ был помечен

а ссылка описывает похожую проблему. тольк если я правильно понял там еще народ хочет свою вкладку в контекстном меню СвойстваФайла сделать.. надо будет взглянуть на метод более детально. спасибо 



--------------------
   с точки зрения аэродинамики шмель не может летать  
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0920 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.