Просмотр поста

.
TubeKinder

Вот есть код такой у меня. Суть его: при открытии программы все файлы на диске должны скрываться, при введении пароля - отрываться. Но. Если прописать путь, например, D:\temp - программа работает. Если сделать так, как я хочу - D:\ - она не компилируется... выдаёт ошибку, что нельзя получить какой-то доступ к D:// System Volume // что-то в этом роде.. Почему так? Как можно это обойти? Мне нужно скрыть именно на всём диске файлы, а не на отдельной папке... То есть, во всех папках, подпапках и тд...

public partial class MainWindow : Window
    {
        public MainWindow()
        {
            string[] allfiles = Directory.GetFiles(@"D:\", "*.*", SearchOption.AllDirectories);
            foreach (string file in allfiles)
            {
                File.SetAttributes(file, FileAttributes.Hidden | FileAttributes.System);

            }
            InitializeComponent();
        }
        private void pass(bool delattr)
        {
            if (delattr)
            {
                string[] allfiles2 = Directory.GetFiles(@"D:\", "*.*", SearchOption.AllDirectories);
                foreach (string file2 in allfiles2)
                {
                    FileAttributes attributes = File.GetAttributes(file2);
                    File.SetAttributes(file2, attributes & ~FileAttributes.System);
                    File.SetAttributes(file2, attributes & ~FileAttributes.Hidden);
                }
                
            }
            else
            {

                MessageBox.Show("Error!");
            }
            password.Password = "";
        }

        void button1_Click(object sender, RoutedEventArgs e)
        {
            pass(password.Password == "12345");
        }

        
    }
}