Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > .NET для новичков > аттрибут файла в перменную. Как?


Автор: v_enom 23.10.2008, 23:27
Пожалуйста подскажите как получить в C# атрибут файла в переменную?!

мне нужно потом хранить данные о файлах  в  файле-хранилище ввиде  массива записей:

Код

class MyFile
{
 string filename;
 int      size;
 xxxx   fileAttribute;
}



В С++ переменная  была раземром 1 байт и легко присваивалась. Мне кртичино, чтобы аттрибут был не больше 1 байта как  и в С++.
а тут я не знаю в какую переменную сохранять резултат работы 

Код

MyFile mf = new FyFile();
mf.fileAttribute =   File.GetAttibute(path);  


 или другой команды. 

получилось только если fileAttribute имеет тип Type, но я не могу посмотреть его значение тогда....

Автор: diadiavova 23.10.2008, 23:59
Атрибуты можно получить либо через статическую функцию GetAttributes, класса System.IO.File, либо через свойство Attributes класса System.IO.FileSystemInfo. В обоих случаях получается экземпляр перечисления System.IO.FileAttributes
Так что вместо 
Код

xxxx fileAttribute;

надо писать
Код

System.IO.FileAttributes fileAttribute;


Если конечно я правильно понял вопрос. Ну а если нужно, чтобы всё в один байт вместилось - надо свой тип придумать и уменьшить количество атрибутов, информацию о которых он сможет хранить.

Автор: v_enom 24.10.2008, 01:02
Цитата(diadiavova @ 23.10.2008,  23:59)
Атрибуты можно получить либо через статическую функцию GetAttributes, класса System.IO.File, либо через свойство Attributes класса System.IO.FileSystemInfo. В обоих случаях получается экземпляр перечисления System.IO.FileAttributes
Так что вместо 
Код

xxxx fileAttribute;

надо писать
Код

System.IO.FileAttributes fileAttribute;


Если конечно я правильно понял вопрос. Ну а если нужно, чтобы всё в один байт вместилось - надо свой тип придумать и уменьшить количество атрибутов, информацию о которых он сможет хранить.

в том-то и проблема, что тип FileAttributes имеет размерность 4 байта...а в С++ атрибут в чар влазил (я переношу с ++ на .Net платформу программу)

Автор: diadiavova 24.10.2008, 01:16
Цитата(v_enom @  24.10.2008,  01:02 Найти цитируемый пост)
я переношу с ++ на .Net платформу программу

Я то думал наоборот, а один байт всегда в четырёх вместить можно. Хотя я не очень понял проблему. Если всё-таки надо вместить можно свой тип создать. Если количество атрибутов, которые которые нужно запомнить не больше 8 то можно и в байте хранить.

Автор: Bogdan1024 24.10.2008, 01:35
Дык FileAttribute в с++ и в .нет совсем разные! В .нет инфа из FileAttribute в один байт никак не поместится ибо там больше, чем 8 флагов. Так что думаю что нужно руками сопоставить отдельные биты с++совского чара значениям .нетовского файлатрибут.

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