Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
0 / 0 / 1
Регистрация: 05.10.2014
Сообщений: 17

Копирование/перенос из многоуровневой структуры папок в одну папку с их переименованием

13.05.2015, 14:26. Показов 1666. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток! Мне нужно разработать приложение(WindowsForm) на C#, но до этого момента я вообще не работал с формами, неделя поисков и попыток хоть что-то сделать сулила неудачей, что и заставило написать сюда.

И так, форумчане, нужно разработать программу, обеспечивающую копирование/перенос из многоуровневой структуры
папок в одну папку автоматическим переименованием файлов.

Как понимаю, нужно чтобы программа обращалась к конечной директории(адрес к ней задает пользователь), потом она обращается к папке №1(тоже задается пользователем), и поочередно переносит каждый файл, сравнивая его с файлами в конечной папке, если есть одинаковые, то пользователь выбирает, что с ним нужно сделать: удалить, заменить, пропустить(это в идеале, для начала, думаю, будет достаточно просто заменить), после этого программа проделывает те же действия со второй папкой(так же пользователь задает адрес до запуска программы). Выполнено.

Есть аналог переноса папок в консольном варианте, а как перенести это в форму не имею понятия...
Нашел в "Панели элементов" folderBrowserDialog, это вроде то что поможет задавать адреса, но опять же не знаю как связать с кнопками или же в рамке, где можно будет вводить(как связать вводимые адреса с работой программы?)...

Прошу направить на истинный путь, а пока хожу в слепоте, подобно захороненным мумиям в Египте.

Добавлено через 19 часов 53 минуты
Сделал внешний вид:
Название: 7234062.jpg
Просмотров: 25

Размер: 20.7 Кб
Нынешний(пустой) код программы:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
namespace WindowsFormsApplication4
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private void label1_Click(object sender, EventArgs e)
        {
 
        }
 
        private void folderBrowserDialog1_HelpRequest(object sender, EventArgs e)
        {
 
        }
 
        private void label3_Click(object sender, EventArgs e)
        {
 
        }
 
        private void maskedTextBox1_MaskInputRejected(object sender, MaskInputRejectedEventArgs e)
        {
 
        }
 
        private void button2_Click(object sender, EventArgs e)
        {
 
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
 
        }
    }
А что делать дальше не имею понятия.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
13.05.2015, 14:26
Ответы с готовыми решениями:

Копирование нескольких определённых файлов и папок в одну определённую папку
Уважаемые форумчане мне нужен скрипт копирования папок и определенных файлов. Мне нужно скопировать 3 папки расположенных в разным местах...

Копирование содержимого одной папки в другую с переименованием файлов и папок в случае совпадения имён
Добрый день! Необходимо решение следующей задачи: Есть папка OUT , находится к примеру "c:\out", внутри папки есть файлы и...

Скопировать содержимое папок, созданных за сегодня, в одну папку
Путь к данным папкам известен. В папках находятся только файлы. Сложные циклы пока не понимаю. цикл /ф "скип7 токены=1" %%а...

1
0 / 0 / 1
Регистрация: 05.10.2014
Сообщений: 17
27.05.2015, 22:03  [ТС]
Ребят, как можно вот это сделать библиотекой?
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
// Если директория target.FullName не существует, создать ее
            if (Directory.Exists(diTarget.FullName) == false)
            {
                Directory.CreateDirectory(diTarget.FullName);
            }
            // Копируем файлы из sourceDirectory в targetDirectory
            foreach (FileInfo fi in diSource.GetFiles())
            {
                Console.WriteLine(@"Copying {0}\{1}", diTarget.FullName, fi.Name);
                fi.CopyTo(Path.Combine(diTarget.ToString(), fi.Name), true);
            }
            //копируем поддиректории
            foreach (DirectoryInfo diSourceSubDir in diSource.GetDirectories())
            {
                DirectoryInfo nextTargetSubDir =
                    diTarget.CreateSubdirectory(diSourceSubDir.Name);
            }
 
            foreach (FileInfo fi in diSource2.GetFiles())
            {
                Console.WriteLine(@"Copying {0}\{1}", diTarget.FullName, fi.Name);
                fi.CopyTo(Path.Combine(diTarget.ToString(), fi.Name), true);
            }
 
            foreach (DirectoryInfo diSourceSubDir in diSource2.GetDirectories())
            {
                DirectoryInfo nextTargetSubDir =
                    diTarget.CreateSubdirectory(diSourceSubDir.Name);
            }
Класс выглядит так:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
        private void button4_Click(object sender, EventArgs e)
        {
            string folder1 = label1.Text;
            string folder3 = label2.Text;
            string folder2 = label3.Text;
            diSource = new DirectoryInfo(folder1);
            diSource2 = new DirectoryInfo(folder3);
            diTarget = new DirectoryInfo(folder2);
            // Если директория target.FullName не существует, создать ее
            if (Directory.Exists(diTarget.FullName) == false)
            {
                Directory.CreateDirectory(diTarget.FullName);
            }
            // Копируем файлы из sourceDirectory в targetDirectory
            foreach (FileInfo fi in diSource.GetFiles())
            {
                Console.WriteLine(@"Copying {0}\{1}", diTarget.FullName, fi.Name);
                fi.CopyTo(Path.Combine(diTarget.ToString(), fi.Name), true);
            }
            //копируем поддиректории
            foreach (DirectoryInfo diSourceSubDir in diSource.GetDirectories())
            {
                DirectoryInfo nextTargetSubDir =
                    diTarget.CreateSubdirectory(diSourceSubDir.Name);
            }
 
            foreach (FileInfo fi in diSource2.GetFiles())
            {
                Console.WriteLine(@"Copying {0}\{1}", diTarget.FullName, fi.Name);
                fi.CopyTo(Path.Combine(diTarget.ToString(), fi.Name), true);
            }
 
            foreach (DirectoryInfo diSourceSubDir in diSource2.GetDirectories())
            {
                DirectoryInfo nextTargetSubDir =
                    diTarget.CreateSubdirectory(diSourceSubDir.Name);
            }
            MessageBox.Show("Копирование завершено!");
        }

Но нужно, чтобы работала с библиотеки.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.05.2015, 22:03
Помогаю со студенческими работами здесь

Копирование из двух папок одну
В папке "Punto Switcher" надо скопировать папку "User Data", но в этой папке еще папка "Backups" которая мне не нужна, но она...

Скрипт на копирование их нескольких папок в одну
Добрый день! Появилась необходимость в частом копирование папок (переношу инфу пользователей на подменные машины ), прочитал ...

Перенос всех папок (с содержимым) в созданную папку на данном уровне
Добрый день. Требуется помощь в написании BAT-файла. Мне необходимо выполнить перемещение всех папок (и всего содержимого) в одну...

Копирование папки с сохранением структуры папок
Здравствуйте. Подскажите пожалуйста как решить задачу. У меня есть 100 компьютеров, на которые необходимо раскинуть определенную папку. ...

Копирование структуры папок и файлов по маске
Добрый день, перекопал форум но так и не допер как это сделать(( Задача такая: Есть папка d:\work в ней куча проектов - и файлы...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru