Программа которая может менять атрибуты выбранных файлов - 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 );
- }
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д