|
Программирование >> Автоматически обновляемые приложения
Листинг 10.20. Получение свойств Фила у - private void buttonl5 Click(object sender, EventArgs e) { Вьшодим информацию о файле. System.10.Fiieinfo file = new System. 10. Fiieinfo ((a c: \wutemp\text. txt ) ; listBoxl.Items.Clear(); listBoxl.Items.Add( Свойства для файла: + file.Name); listBoxl.Items.Add( Наличие файла: + file.Exists.ToString(; if (file.Exists) { listBoxl.Items.Add( Время создания файла: ); listBoxl.Items.Add(file.CreationTime.ToString()); listBoxl.Items.Add( Последнее изменение файла: ); listBoxl.Items.Add(file.LastWriteTime.ToString()); listBoxl.Items.Add( Файл бьш открыт в последний раз: ); listBoxl.Items.Add(file.LastAccessTime.ToString О); listBoxl.Items.Add( Размер файла (в байтах): ); listBoxl.Items.Add(file.Length.ToStringО); listBoxl.Items.Add( Атрибуты файла: ); listBoxl.Items.Add(file.Attributes.ToString()); Как извлечь информацию о файле? Некоторые файлы (например, исполняемые файлы ЕХЕ или динамические библиотеки DLL) содержат различную информацию. Если выбрать такой файл в Проводнике и через контекстное меню выбрать пункт Свойства, то можно увидеть эти свойства. Можно получить эту информацию и программным путем (листинг 10.21). Обратите внимание, что в этом случае используется пространство имен System. Diagnostics, а не System. 10, как МОЖНО бы-ло бы ожидать. Листинг10.21. Извлечение информации о файле private void button3 Click(object sender, EventArgs e) { System.Diagnostics.FileVersionInfо info = System.Diagnostics.FileVersionInfо.GetVersionInfо( (3 C: \windows\system32\mspaint. exe Как создать временный файл? Для создания временного файла, который будет иметь уникальное имя и находиться в папке, определенной переменной окружения TEMP, нужно воспользоваться методом GetTempFileName КЛаССа System.10.Path (ЛИСТИНГ 10.22). Причем сама система позаботится об уникальности имени создаваемого файла. \ Листинг 10.22. Создание временного Фила private void button5 Click(object sender, EventArgs e) { listBoxl.Items.Clear(); Создаем временный файл listBoxl.Items.Add(System.10.Path.GetTempFileName() ; Как создать уникальное имя для файла? в .NET Framework 2.0 появился новый метод GetRandomFiieName, который относится к классу system. Ю. Path. МетОД GetRandomFiieName ВОЗВращаеТ случайным образом сгенерированную строку, которую можно использовать в качестве имени файла (листинг 10.23). Обратите внимание, что в отличие от метода GetTempFileName, метОД GetRandomFiieName не СОЗДает Сам файл. Выводим информацию о выбранном файле listBoxl.Items.Add( Выбранный файл: + infо.FileName); listBoxl.Items.Add( Product Name: + infо.ProductName); listBoxl.Items.Add( Product Version: + info.ProductVersion); listBoxl.Items.Add( Company Name: + infо.CompanyName); listBoxl.Items.Add( File Version: + infо.FileVersion); listBoxl.Items.Add( File Description: + infо.FileDescription) ; listBoxl.Items.Add( Original Filename: + info.OriginalFilename) ; listBoxl.Items.Add( Legal Copyright: + infо.LegalCopyright); listBoxl.Items.Add( InternalName: + info.InternalName); listBoxl.Items.Add( IsDebug: + infо.IsDebug); listBoxl.Items.Add( IsPatched: + infо.IsPatched); listBoxl.Items.Add( IsPreRelease: + infо.IsPreRelease); listBoxl.Items.Add( IsPrivateBuild: + infо.IsPrivateBuild); listBoxl.Items.Add( IsSpecialBuild: + infо.IsSpecialBuild); \ Листинг 10.23. Создание уникального имени для файла private void buttonl6 Click(object sender, EventArgs e) { string randomFile = System.10.Path.GetRandomFileName(); MessageBox.Show(randomFile); вернет что-то типа 5wvzx2n0.Iby При вызове данного метода получаются очень странные имена файлов типа 4rvzx0w.ls4. Если вам необходимо создать текстовый файл с уникальным именем, то удобнее использовать метод GetRandomFileName В связке с методом changeExtension, как показано В листинге 10.24. ; Лидгинг 10.24. Создание уникального текстового файла string tempText = System.10.Path.ChangeExtension( System.10.Path.GetRandomFileName(), .txt ); MessageBox.Show(tempText); Как ограничить доступ к файлу? Если вам необходимо закрыть доступ к файлу, то вы можете установить желаемый уровень доступа через перечисление FiieShare. Пример показан в листинге 10.25. [листинг 10.25. Ограничение доступа к файлу string fileName = (Э с:\test. txt ; FileStream stream = new FileStream(fileName, FileMode.Open, FileAccess.Read, FiieShare.None); никому не даем доступ к файлу здесь находится ваш код открьшаем снова файл для доступа stream. Close О ; Существует еще один вариант ограничения доступа к файлу (листинг 10.26).
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0.001
При копировании материалов приветствуются ссылки. |