Программа которая может менять атрибуты выбранных файлов - 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 );
            }
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 3.6 из 5
Похожие ответы