Как переместить папку "а" в папку "б" ?

aleksfid

Client
Регистрация
17.12.2015
Сообщения
448
Благодарностей
21
Баллы
18
Как переместить папку "а" в папку "б" ?
Экшен не работает
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 407
Благодарностей
9 116
Баллы
113
Как переместить папку "а" в папку "б" ?
Экшен не работает
сейчас проверил, не работает, если папка, куда надо перемещать, существует..
если не существет, то перемещает..
 
  • Спасибо
Реакции: Dimionix

aleksfid

Client
Регистрация
17.12.2015
Сообщения
448
Благодарностей
21
Баллы
18
сейчас проверил, не работает, если папка, куда надо перемещать, существует..
если не существет, то перемещает..
Папка должна всегда существовать
Потому не выходит. Баг?
 
  • Спасибо
Реакции: lbvf65

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 407
Благодарностей
9 116
Баллы
113
Папка должна всегда существовать
Потому не выходит. Баг?
вряд ли баг, скорее особенность..
попробуйте написать тикет с предложением..
я думаю, что разрабы что то придумают по этому поводу..
ну а сейчас пока придется воспользоваться какими то обходными путями (костылями)..
либо покопать возможности C# к этой задаче..
 

ibred

Client
Регистрация
04.04.2015
Сообщения
3 835
Благодарностей
3 552
Баллы
113
либо покопать возможности C# к этой задаче..
C# метод Directory.Move работает точно так же, кстати говоря.
Выбьет ошибку: Выполнение кода C# Результат: Невозможно создать файл, так как он уже существует.
C#:
string sourceDirectory = @"C:\1"; // Откуда
string destinationDirectory = @"C:\2"; // Куда

try {
    Directory.Move(sourceDirectory, destinationDirectory);
}
catch (Exception e)
{
    return e.Message;
}
 
  • Спасибо
Реакции: ovsergeyev и Sergodjan

aleksfid

Client
Регистрация
17.12.2015
Сообщения
448
Благодарностей
21
Баллы
18
C# метод Directory.Move работает точно так же, кстати говоря.
Выбьет ошибку: Выполнение кода C# Результат: Невозможно создать файл, так как он уже существует.
C#:
string sourceDirectory = @"C:\1"; // Откуда
string destinationDirectory = @"C:\2"; // Куда

try {
    Directory.Move(sourceDirectory, destinationDirectory);
}
catch (Exception e)
{
    return e.Message;
}
тож выбьет ошибку код? если папка уже есть?
 

ibred

Client
Регистрация
04.04.2015
Сообщения
3 835
Благодарностей
3 552
Баллы
113
тож выбьет ошибку код? если папка уже есть?
Как уже сказал @sergodjan66, это особенность метода - он так работает (это не баг).
То есть в поле "Новый путь" конечная папка - это не то место, куда переносим, а имя той папки, что будет перенесена.

Чтобы решить Вашу задачу, а именно перенести папку в другую папку (т.е. целиком, не только содержимое), можно использовать следующий код:
C#:
string sourceDirectory = @"C:\1"; // Откуда
string nameFolder  = new DirectoryInfo(sourceDirectory).Name; // Получаем имя конечной папки
string destinationDirectory = string.Format(@"C:\2\{0}", nameFolder); // Куда

try {
    Directory.Move(sourceDirectory, destinationDirectory);
}
catch (Exception e) {
    return e.Message;
}
 
Последнее редактирование:
  • Спасибо
Реакции: mig-z и Sergodjan

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 407
Благодарностей
9 116
Баллы
113

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 122
Баллы
113
C# метод Directory.Move работает точно так же, кстати говоря.
Выбьет ошибку: Выполнение кода C# Результат: Невозможно создать файл, так как он уже существует.
То же самое и при использовании метода MoveTo(destDirName) класса DirectoryInfo
 

Кто просматривает тему: (Всего: 2, Пользователи: 0, Гости: 2)