Программа которая может менять атрибуты выбранных файлов - C#
Формулировка задачи:
Написать программу которая может менять атрибуты выбранных файлов (Изманение, чтение, запись и т.д.) Должны меняться атрибуты файлов - по одному, или сразу несколько.
Атрибуты: только для чтения, архивный, скрытый, системный, сжатый, шифрованный, время создания, время доступа, время записи.
Вложенные файлы и папки тоже должны обрабатываться, например нажали на папку "только для чтения", значит все вложенные файлы и папки меняют атрибут (по всему вложенному дереву).
Решение задачи: «Программа которая может менять атрибуты выбранных файлов»
textual
Листинг программы
using System; using System.IO; using System.Windows.Forms; namespace WindowsFormsApplication3 { public partial class Form1 : Form { private static string fileName; private static FileAttributes atr; public Form1() { InitializeComponent(); dateTimePicker1.CustomFormat = "MM.dd.yyyy hh:mm:ss"; dateTimePicker2.CustomFormat = "MM.dd.yyyy hh:mm:ss"; dateTimePicker3.CustomFormat = "MM.dd.yyyy hh:mm:ss"; checkedListBox1.ItemCheck += CheckedListBox1_ItemCheck; } private void CheckedListBox1_ItemCheck( object sender, ItemCheckEventArgs e ) { string atrName = (sender as CheckedListBox).Items[e.Index].ToString(); FileAttributes tmp = (FileAttributes)Enum.Parse( typeof(FileAttributes), atrName ); if ( e.NewValue == CheckState.Checked ) atr |= tmp; else if ( e.NewValue == CheckState.Unchecked ) atr ^= tmp; } private void button1_Click( object sender, EventArgs e ) { checkedListBox1.Items.Clear(); if ( openFileDialog1.ShowDialog() == DialogResult.OK ) { fileName = openFileDialog1.FileName; textBox1.Text = fileName; atr = File.GetAttributes(fileName); dateTimePicker1.Value = File.GetCreationTime( fileName ); dateTimePicker2.Value = File.GetLastAccessTime( fileName ); dateTimePicker3.Value = File.GetLastWriteTime( fileName ); Array arr = Enum.GetValues( typeof( FileAttributes ) ); foreach( var item in arr ) checkedListBox1.Items.Add( item.ToString(), atr.HasFlag( (Enum)Enum.Parse( typeof( FileAttributes ), item.ToString() ) ) ); } } private void button2_Click( object sender, EventArgs e ) { try { File.SetCreationTime( fileName, dateTimePicker1.Value ); File.SetLastAccessTime( fileName, dateTimePicker2.Value ); File.SetLastWriteTime( fileName, dateTimePicker3.Value ); File.SetAttributes( fileName, atr ); } catch (Exception ex) { MessageBox.Show( ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error ); } } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д