Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Общие вопросы .NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.04.2013, 10:09   #1
jeysmook
 
Регистрация: 24.03.2013
Сообщений: 3
Вопрос C# Блокировка формы на время создания папок и файлов

Этот код создает систему папок и файлов, мне нужно чтобы кнопки были заблокированы пока не будут созданы все папки и файлы, иначе при выполнение следующих действий на форме (например удаление этих файлов) выдает ошибку - "Процесс не может получить доступ к файлу "..\file\file\bin\Debug\Создать\GIF \gif.gif", так как этот файл используется другим процессом.", мне нужно чтобы этой ошибки не было, спасибо.
Код:
       
        private void create_Click(object sender, EventArgs e)
        {
            var path = url.Text;
            var name = Environment.MachineName.ToString();
            string[] logicalDrivers = Environment.GetLogicalDrives();
            var strLogicalDrivers = "";
            foreach (var item in logicalDrivers)
                strLogicalDrivers += item + "; ";
            strLogicalDrivers = strLogicalDrivers.Substring(
                0,
                strLogicalDrivers.LastIndexOf(";"));
            var version = Environment.OSVersion.ToString();
            var files = new string[]
            {
                "/GIF/gif.gif",
                "/BMP/bmp.bmp",
                "/DOC/doc.doc",
                "/DOC/ini/ini.ini",
            };
            var str = "";
            foreach (var item in files)
                str += item;
            DirectoryInfo newDir = new DirectoryInfo(@path);
            newDir.CreateSubdirectory("GIF");
            newDir.CreateSubdirectory("BMP");
            newDir.CreateSubdirectory("DOC");
            newDir.CreateSubdirectory("DOC/ini");
            for (int i = 0; i < files.Length; i++)
            {
                FileInfo newFile = new FileInfo(@path + files[i]);
                newFile.Create();
            }
            FileInfo newFileTxt = new FileInfo(@path + "/file.txt");
            StreamWriter newText = newFileTxt.CreateText();
            newText.WriteLine(
                "\r\nИмя машины: {0}." +
                "\r\nЛогические диски: {1}." +
                "\r\nВерсия ОС: {2}.", name, strLogicalDrivers, version
                );
            newText.Close();
            FileInfo file = new FileInfo(@path + "/DOC/ini/ini.ini");
        }
        private void del_Click(object sender, EventArgs e)
        {
            var path = url.Text;
            FileInfo delFile = new FileInfo(@path + "\\file.txt");
            delFile.Delete();
            DirectoryInfo delDir = new DirectoryInfo(@path);
            foreach (DirectoryInfo dir in delDir.GetDirectories())
            {
                Directory.Delete(path + "\\" + dir, true);
            }
        }

Последний раз редактировалось jeysmook; 26.04.2013 в 10:13.
jeysmook вне форума Ответить с цитированием
Старый 26.04.2013, 10:18   #2
Guy
Форумчанин
 
Регистрация: 15.12.2010
Сообщений: 398
По умолчанию

Код:
 private void create_Click(object sender, EventArgs e)
 {
     create.Enable = false;
     ......
     create.Enable = true;
}
Guy вне форума Ответить с цитированием
Старый 26.04.2013, 10:20   #3
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

ничего не надо делать, оно и так уже блокируется
eval вне форума Ответить с цитированием
Старый 26.04.2013, 10:39   #4
jeysmook
 
Регистрация: 24.03.2013
Сообщений: 3
По умолчанию

Guy, я так пробовал, все равно выдает ошибку - "Процесс не может получить доступ к файлу "..\file\file\bin\Debug\Создать \GIF \gif.gif", так как этот файл используется другим процессом."

eval, а почему выдается ошибка? Если подождать немного то ошибки нет, а если нажимать сразу, то вылазит ошибка - "Процесс не может получить доступ к файлу "..\file\file\bin\Debug\Создать \GIF \gif.gif", так как этот файл используется другим процессом."
jeysmook вне форума Ответить с цитированием
Старый 26.04.2013, 10:47   #5
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

откуда нам тут знать что у вас с там с gif.gif ?
eval вне форума Ответить с цитированием
Старый 26.04.2013, 10:52   #6
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

ну судя по
FileInfo newFile = new FileInfo(@path + files[i]);
newFile.Create();

то вам надо почитать про Create метод
eval вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обновление поля формы после создания новой записи создания romanln2012 Microsoft Office Access 2 09.08.2012 14:12
копирование файлов и папок Smagulov85 Общие вопросы Delphi 0 19.10.2010 23:16
поиск файлов и папок FAiver Общие вопросы Delphi 13 09.04.2009 18:01
Отображение скрытых файлов и папок и отображение розширения всех файлов beegl Общие вопросы Delphi 10 14.12.2008 22:02
Блокировка файлов UnD)eaD)Snake Общие вопросы Delphi 8 09.10.2007 18:39