Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Ruby: Общие вопросы > Доступ к атрибутам файла на Руби


Автор: Andi 28.8.2006, 09:49
Подскажите как на руби получить информацию про атрибуты файла?
В Win Xp если смотреть через проводник у свойств файла есть закладка сводка.
Там много разной информации.Как ее вытащить средствами Руби?

Автор: skalex 28.8.2006, 09:52
Не уверен, что это можно сделать ...

Автор: Andi 28.8.2006, 09:54
Я в документации быстро посмотрел и ничего не нашел.
А Мац писал что это удобный язык для обработки файлов.
Вот и верь потом японцам

Автор: Bikutoru 28.8.2006, 10:59
Цитата(Andi @  28.8.2006,  10:49 Найти цитируемый пост)
Подскажите как на руби получить информацию про атрибуты файла?
В Win Xp если смотреть через проводник у свойств файла есть закладка сводка.
Там много разной информации.Как ее вытащить средствами Руби?

Быть может это то, что нужно:
http://www.rubycentral.com/book/ref_c_file.html#File.stat
http://www.rubycentral.com/book/ref_c_file__stat.html


Автор: JackSparrow 31.8.2006, 08:22
вчера случайно наткнулся на метод chmod у класса File, насколько я знаю chmod это как раз связано с атрибутами файла, хотя на сто процентов не уверен

Автор: skalex 31.8.2006, 08:28
JackSparrow, метод chmod оперирует над атрибутами файла или каталога, связанные с доступом к нему ...

Автор: Cr@$h 31.8.2006, 18:34
stat возвращает всё, что угодно, но только не это. Закладка Сводка появилась не так давно. Это ОСь заботится, я считаю. Сама выбирает из формата файла эту информацию. Почти уверен. Эта инфа содержится в самом начале файла (а у некоторых форматов -- в конце). Если уж и искать, то класс который умеет дёргать это у jpg, например. тут японцы могли и не соврать.
user posted image
Bikutoru, похоже, как раз японец: уж очень ник похож на японский smile и иероглифы какие-то в аватаре  smile 

Автор: Akeem 31.8.2006, 22:02
А попробывать самому написать методы которые дёргали бы нужную инфу?
В Руби точно можно определить размер файла когда создан. 

тебе достаточно дописать свой метод в клас File

Код

class File
   def files_prop()
     #bla-bla
   end
end 


Автор: Bikutoru 1.9.2006, 18:21
Злостный оффтоп:
Цитата(Cr@$h @  31.8.2006,  19:34 Найти цитируемый пост)
Bikutoru, похоже, как раз японец: уж очень ник похож на японский smile и иероглифы какие-то в аватаре  smile

Нет, не японец... Но ник японский (японскакая "транслитерация" от "Виктор") и иероглифы тоже (Bikutoru, написанное слоговой азбукой katakana)... 

Автор: Cr@$h 1.9.2006, 22:26
Цитата(Akeem @  31.8.2006,  23:02 Найти цитируемый пост)
А попробывать самому написать методы которые дёргали бы нужную инфу?

Это всегда можно. Попробуй, например, с jpeg дёргнуть разрешение и глубину цвета. smile 

user posted image
Bikutoru, респект ++

Автор: Void 1.9.2006, 22:35
Цитата(Cr@$h @  31.8.2006,  20:34 Найти цитируемый пост)
Сама выбирает из формата файла эту информацию. Почти уверен. Эта инфа содержится в самом начале файла (а у некоторых форматов -- в конце). 

Не обязательно. На NTFS пользователь может сам задавать такие атрибуты для любого файла, вне зависимости от формата. Они хранятся в отдельном потоке данных NTFS, откуда их и вытаскивает шелл. Если обращаться к потокам можно как <имя_файла>:<имя_потока>, то перечислить их можно только обращаясь напрямую к WinAPI. Кроме того, надо узнать формат хранения этих метаданных.

Автор: Cr@$h 1.9.2006, 23:04
Void, спасибо, что подметил. Но всё же хочется безотносительно к ОСи.
Хотя, так или иначе, руками всё-таки придётся делать...

Автор: Akeem 2.9.2006, 18:15
А вообще можно ли с помощью Win32API узнавать инфу о файле?
Если да то вопрос очень даже решен. Просто применяем процедуру получения инфы о файле с помощью Win32API.

P.S. Я сам тока начал с ним разбиратся и ща темку создам как использовать этот класс.

Автор: Cr@$h 2.9.2006, 23:17
Цитата(Akeem @  2.9.2006,  19:15 Найти цитируемый пост)
А вообще можно ли с помощью Win32API узнавать инфу о файле?
Если да то вопрос очень даже решен. Просто применяем процедуру получения инфы о файле с помощью Win32API.

Только не забудь, здесь имеется в виду информация из вкладки Сводка (разрешение картинки, глубина цвета и прочее). Это я понял из второй http://forum.vingrad.ru/index.php?showtopic=109566&hl= автора.

Автор: Akeem 5.9.2006, 17:57
Cr@$h, 
Я вот как раз сегодня (5,09,2006) Узнал что с помощью Того класа который я упоминал можно получить полную информацию о файле. Тем более это кажыть так и называется GetFileVersionInfoSize и GetFileVersionInfo. Ну и другие функии с помощью которых можно узнать о файле всё. Мы просто обращаемся к самому виндовсу и виндовс предоставит нам нужные данные. +Как мне кажется виндовс сам так и действует.

Автор: Cr@$h 5.9.2006, 20:01
Цитата(Akeem @  5.9.2006,  18:57 Найти цитируемый пост)
Тем более это кажыть так и называется GetFileVersionInfoSize и GetFileVersionInfo. 

Прверь лучше. Дёрни у jpeg характеристики картинки.

Цитата(Akeem @  5.9.2006,  18:57 Найти цитируемый пост)
Мы просто обращаемся к самому виндовсу и виндовс предоставит нам нужные данные

Да, но тут разные объекты должен возвращать в зависимости от типа файла. Хотя, это может быть массив пар строк и всё.

Цитата(Akeem @  5.9.2006,  18:57 Найти цитируемый пост)
Как мне кажется виндовс сам так и действует

Сам себе предоставляет  smile Гм. Да, если класс действительно может так делать, то скорее всего так оно и есть. Но что-то мне не нравятся эти названия: GetFileVersionInfoSize и GetFileVersionInfo. FileVerson -- может быть информация, к. обычо у DLL и инсталяционных пакетов присутствует. Типа там есть: полное имя, язык, сведения о фирме и т.д. Открой свойства практически любого дистрибутива или DLL, например некоторые содержат о себе такую инфу. Вот что это, я думаю.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)