Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> перемещение папки 
V
    Опции темы
PsyNejumi303
Дата 25.3.2006, 13:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 20.3.2006

Репутация: 1
Всего: 1



помогите. папка создается в которую должно быть перемещено, а когда дело доходит до MoveTo то мне выдает "Невозможно создать файл, так как он уже существует." хотя файла там такого еще нет.
Код

            DirectoryInfo dir = new DirectoryInfo(textBox2.Text);
            DirectoryInfo[] subdir = dir.GetDirectories();
            for (int i = 0; i < subdir.Length; i++)
            {
                Directory.CreateDirectory("c:/test/" + a + "/" + b);
                subdir[i].MoveTo("c:/test/" + a + "/" + b); // вот на эту строчку ругается:(
            }

PM WWW ICQ   Вверх
ivashkanet
Дата 25.3.2006, 14:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодю потиху
****


Профиль
Группа: Участник Клуба
Сообщений: 3684
Регистрация: 23.2.2006
Где: Гомель, Беларусь

Репутация: 47
Всего: 149



PsyNejumi303, команда
Код

subdir[i].MoveTo("c:/test/" + a + "/" + b);

перемещает папку subdir[i] не внуть папуки "c:/test/" + a + "/" + b, а именно на её место (те переименовывает её в "c:/test/" + a + "/" + b).

Поэтому код должен быть такой:
Код

            DirectoryInfo dir = new DirectoryInfo(textBox2.Text);    
            DirectoryInfo[] subdir = dir.GetDirectories();    
            for (int i = 0; i < subdir.Length; i++)    
            {    
                Directory.CreateDirectory("c:/test/" + a + "/" + b);
                subdir[i].MoveTo("c:/test/" + a + "/" + b +subdir[i].Name); // вот на эту строчку уже не ругается:(    
            }


P.S. Некоторые замечания:
1) Папка Directory.CreateDirectory("c:/test/" + a + "/" + b) создаеться однажды, зачем ее создавать внутри цикла smile (Странно, что программа не ругаеться)
2) C коллекцией (массивом) лучше работать в таких случаях через foreach:
Код

            DirectoryInfo dir = new DirectoryInfo(textBox2.Text);
            Directory.CreateDirectory("c:/test/" + a + "/" + b);
            foreach (DirectoryInfo SubDir in dir.GetDirectories())
            {
                SubDir.MoveTo("c:/test/" + a + "/" + b + SubDir.Name);    
            }


Удачи! smile

Это сообщение отредактировал(а) ivashkanet - 25.3.2006, 14:24
PM MAIL WWW ICQ   Вверх
PsyNejumi303
Дата 25.3.2006, 14:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 20.3.2006

Репутация: 1
Всего: 1



ivashkanet, a и b меняются в цикле. поэтому и создается папка в цикле. просто не стал писать другую большую ненужную часть кода где идет вычисление a и b
пасиба бальшое. все пашет))
PM WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0711 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.