Форум программистов, компьютерный форум CyberForum.ru

Копирование папки - C++

Восстановить пароль Регистрация
 
Blane
0 / 0 / 0
Регистрация: 10.04.2013
Сообщений: 15
16.04.2013, 23:34     Копирование папки #1
Здравствуйте! Мне необходимо скопировать папку. Но каждый раз выдает ошибку "Невозможно выполнить циклическое копирование".

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
      
char way1[100]="C:\1\"; 
char way2[100]="";
char cpy[100]= "xcopy /e ";
char fin[100]= "";
      
strcpy (way2,way1);
strcat (way1,"* ");
strcat (way1,way2);
strcat (way1,"-копия\*");
strcpy (fin, cpy);
strcat (fin,way1);
system(fin);
По условию путь присылается извне, мне его надо использовать.
В чем проблема?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.04.2013, 23:34     Копирование папки
Посмотрите здесь:

C++ копирование
C++ Копирование
удаление папки C++
C++ Скрытые папки
C++ Создание папки
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
anmartex
...
 Аватар для anmartex
1699 / 1192 / 494
Регистрация: 12.02.2013
Сообщений: 1,978
17.04.2013, 07:47     Копирование папки #2
Blane, так у вас получается именно циклическое копирование:
Код
xcopy /e C:\1\* C:\1\-копия\*
Т.е. взять всё содержимое из папки C:\1\ и скопировать туда же в папку копия. Улавливаете абсурд? Копируйте не в папку 1 а в какую-нибудь другую.
Blane
0 / 0 / 0
Регистрация: 10.04.2013
Сообщений: 15
17.04.2013, 10:25  [ТС]     Копирование папки #3
Цитата Сообщение от anmartex Посмотреть сообщение
Т.е. взять всё содержимое из папки C:\1\ и скопировать туда же в папку копия. Улавливаете абсурд? Копируйте не в папку 1 а в какую-нибудь другую.
От части понял ошибку) Должно копироватся не в папку "копия", а в папку "1-копия"... Лишний слеш после 1. Я его убрал, теперь выглядит так:
C#
1
xcopy /e C:\1\* C:\1-копия\*
Но всеравно выдает туже самую ошибку
anmartex
...
 Аватар для anmartex
1699 / 1192 / 494
Регистрация: 12.02.2013
Сообщений: 1,978
17.04.2013, 10:30     Копирование папки #4
Blane, ещё настораживает экранирование, должно быть так:
C
1
2
3
4
5
6
7
8
9
10
11
12
char way1[100]="C:\\1\\"; // Тут
char way2[100]="";
char cpy[100]= "xcopy /e ";
char fin[100]= "";
      
strcpy (way2,way1);
strcat (way1,"* ");
strcat (way1, way2);
strcat (way1,"-копия\\*"); // Тут
strcpy (fin, cpy);
strcat (fin, way1);
system(fin);
Blane
0 / 0 / 0
Регистрация: 10.04.2013
Сообщений: 15
17.04.2013, 11:05  [ТС]     Копирование папки #5
Цитата Сообщение от anmartex Посмотреть сообщение
Blane, ещё настораживает экранирование, должно быть так:
Да, спасибо! Так работает!
C#
1
xcopy /e C:\\1\\* C:\\1-копия\\*
Но получается возникла новая проблема) У меня начальный путь присылается... Поэтому заменить "\" на "\\" мне надо будет программно... Как можно это сделать?
Yandex
Объявления
17.04.2013, 11:05     Копирование папки
Ответ Создать тему
Опции темы

Текущее время: 01:10. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru