Работа с директориями

aluminoter

Client
Регистрация
11.02.2015
Сообщения
254
Благодарностей
39
Баллы
28
Подскажите пожалуйста как мне правильно поступить.
1. Мне нужно одновременно удалить папку со всем ее содержимым и потом такую же создать.
Код:
Directory.Delete(path, true);
Directory.CreateDirectory(path);
Не работает что то.
2. И еще мне бы надо скопировать папку со всем ее содержимым. И получить список ее файлов.
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
https://msdn.microsoft.com/ru-ru/library/system.io.directory(v=vs.110).aspx
Код:
// удалить
string dirName = @"C:\fff";
    DirectoryInfo dirInfo = new DirectoryInfo(dirName);
    dirInfo.Delete(true);

//или так
string dirName = @"C:\fff";
Directory.Delete(dirName, true);

// создать
string path = @"C:\fff";
string subpath = @"муся)\пуся)";
DirectoryInfo dirInfo = new DirectoryInfo(path);
if (!dirInfo.Exists)
{
    dirInfo.Create();
}
dirInfo.CreateSubdirectory(subpath);

// получение всех файлов в директории
string[] fullfilesPath = 
    Directory.GetFiles(@"C:\fff"); 
return String.Join("\r\n", fullfilesPath);

// получение всех файлов директории, включая поддиректории
string[] fullfilesPath =  
    Directory.GetFiles(@"C:\Program Files\Uninstall Tool\", "*.*",  
         SearchOption.AllDirectories);        
        return String.Join("\r\n", fullfilesPath);
 
Последнее редактирование:
  • Спасибо
Реакции: Oleg_M и aluminoter

aluminoter

Client
Регистрация
11.02.2015
Сообщения
254
Благодарностей
39
Баллы
28
Что то вообще тухляк полный.
Код:
var pathSource = project.Directory + @"\" + "source"; // Путь донор
var pathTarget = project.Directory + @"\" + "target"; // Путь назначения

var dirs = Directory.GetDirectories(pathSource, ".", SearchOption.AllDirectories); // Получаю все папки и подпаки пути донара
Как мне теперь все содержимое папок и подпапок скопировать в папку pathTarget???
 

aluminoter

Client
Регистрация
11.02.2015
Сообщения
254
Благодарностей
39
Баллы
28
Все разобрался, кому интересно держите вариант решения, может он и не совсем правильный, но работает.

Код:
//    -------------------------------------------------------------------    //
//    Пути;
//    -------------------------------------------------------------------    //
   
//    Путь источник;
    var pathSource = project.Directory + @"\" + "source";
//    Путь Назначения;
    var pathTarget = project.Directory + @"\" + "target";

//    -------------------------------------------------------------------    //
//    Копируем директории и все поддириктории;
//    -------------------------------------------------------------------    //
   
    var dirs = Directory.GetDirectories(pathSource, ".", SearchOption.AllDirectories);
    foreach    (var dir in dirs)
        {
            Directory.CreateDirectory(dir.Replace(pathSource, pathTarget));
        }

//    -------------------------------------------------------------------    //
//    Копируем все файлы которые нашли в директориях и поддерикториях;
//    -------------------------------------------------------------------    //
       
    var files = Directory.GetFiles(pathSource, ".", SearchOption.AllDirectories);   
    foreach (var file in files)
        {
            File.Copy(file, file.Replace(pathSource, pathTarget), true);
        }
 
  • Спасибо
Реакции: sentinel, Oleg_M и mux76

steklarul

Client
Регистрация
07.09.2016
Сообщения
164
Благодарностей
7
Баллы
18
Все привет помогите разобратся в этом коде
// берем тестовые картинки
var files = Directory.GetFiles(project.Directory + "\\Test\\");
как добаветь путь к конкретному файлу через переменую есть project.Directory + папка "\\Test\\" где хранятся файлы мне нужно чтобы брался конкретный файл названия файла будет прописан в переменой, в этом примере(project.Directory + "\\Test\\") нужно добаветь переменыю где будет названия файла
 

Oleg_M

Client
Регистрация
27.02.2015
Сообщения
72
Благодарностей
28
Баллы
18
Все привет помогите разобратся в этом коде
// берем тестовые картинки
как добаветь путь к конкретному файлу через переменую есть project.Directory + папка "\\Test\\" где хранятся файлы мне нужно чтобы брался конкретный файл названия файла будет прописан в переменой, в этом примере(project.Directory + "\\Test\\") нужно добаветь переменыю где будет названия файла
Код:
var fileName = "fileName.jpg"; // переменная с именем файла
var files = Directory.GetFiles(project.Directory + @"\Test\" + fileName); // путь к файлу
 

steklarul

Client
Регистрация
07.09.2016
Сообщения
164
Благодарностей
7
Баллы
18

Oleg_M

Client
Регистрация
27.02.2015
Сообщения
72
Благодарностей
28
Баллы
18
не работает этот вариянт смотрите скрин http://floomby.ru/s2/KgZum9/full/
Согласно коду на скрине, тебе просто нужно указать правильный путь к папке с картинками.
Замени две верхних строки, на вот эту:
Код:
var files = Directory.GetFiles(project.Directory + @"\Test\");
Если директория Test, это директория в которой находятся файлы (картинки) и эта директория находится в папке с проектом, то все должно работать.
 

steklarul

Client
Регистрация
07.09.2016
Сообщения
164
Благодарностей
7
Баллы
18
Согласно коду на скрине, тебе просто нужно указать правильный путь к папке с картинками.
Замени две верхних строки, на вот эту:
Код:
var files = Directory.GetFiles(project.Directory + @"\Test\");
Если директория Test, это директория в которой находятся файлы (картинки) и эта директория находится в папке с проектом, то все должно работать.
Да понятно что должно работать, в оригинале как ести он работает var files = Directory.GetFiles(project.Directory + "\\Test\\"); простно мне нужно конкретны файл обработать а в таком виде он обрабатовает все что есть вот в чем загвостка целый дени ламаю голову просто умора самую трудную часть сделал а тут финишная примая и ни как не могу реализовать
 

Oleg_M

Client
Регистрация
27.02.2015
Сообщения
72
Благодарностей
28
Баллы
18
Правильно, там установлен цикл (foreach), который обрабатывает все файлы в директории.
Если хочешь обработать конкретный файл, тогда нужно выполнять без цикла.
Сначала прописываешь путь к файлу:
Код:
var file = project.Directory + @"\Test\" + project.Variables["directtiva_Pictures"].Value;
Затем убераешь все лишнее (см. скрин)

2017-02-05_02-47-56.png
 

steklarul

Client
Регистрация
07.09.2016
Сообщения
164
Благодарностей
7
Баллы
18
Правильно, там установлен цикл (foreach), который обрабатывает все файлы в директории.
Если хочешь обработать конкретный файл, тогда нужно выполнять без цикла.
Сначала прописываешь путь к файлу:
Код:
var file = project.Directory + @"\Test\" + project.Variables["directtiva_Pictures"].Value;
Затем убераешь все лишнее (см. скрин)

Посмотреть вложение 18352
не работает ваш вариянт ошибка http://floomby.ru/s2/3gZunF/full/
 

steklarul

Client
Регистрация
07.09.2016
Сообщения
164
Благодарностей
7
Баллы
18
Правильно, там установлен цикл (foreach), который обрабатывает все файлы в директории.
Если хочешь обработать конкретный файл, тогда нужно выполнять без цикла.
Сначала прописываешь путь к файлу:
Код:
var file = project.Directory + @"\Test\" + project.Variables["directtiva_Pictures"].Value;
Затем убераешь все лишнее (см. скрин)

Посмотреть вложение 18352
Привет Олег скажите пожалуйста информация каторая отброжается в Лог можно как то ее выдернут и положить в переменую
 

Oleg_M

Client
Регистрация
27.02.2015
Сообщения
72
Благодарностей
28
Баллы
18
Привет Олег скажите пожалуйста информация каторая отброжается в Лог можно как то ее выдернут и положить в переменую
Приветствую.
Логи в зенно сохраняются в файл: C:\Program Files (x86)\ZennoLab\RU\ZennoPoster (тут версия)\5.10.3.1\Progs\Logs\executionLog.txt
Можно попробовать парсить информацию от туда, но этот подход не правильный.
Логику необходимо строить таким образом, чтобы нужная информация попадала в переменную до попадания в лог и на основании данных с этой переменной уже принимать дальнейшее решение.
 
Последнее редактирование:

steklarul

Client
Регистрация
07.09.2016
Сообщения
164
Благодарностей
7
Баллы
18
Приветствую.
Логи в зенно сохраняются в файл: C:\Program Files (x86)\ZennoLab\RU\ZennoPoster (тут версия)\5.10.3.1\Progs\Logs\executionLog.txt
Можно попробовать парсить информацию от туда, но этот подход не правильный.
Логику необходимо строить таким образом, чтобы нужная информация попадала в переменную до попадания в лог и на основании данных с этой переменной уже принимать дальнейшее решение.
Привет я знаю что это не правильно но я не знаю что делать может мне дать вам кусок шаблона и возможно вы поймете сразу что скажите? там просто два экщена каторый обрабатовают картинки привязыны к коду из OwnCodeUsings, этот метод по разгадованию капч предаставел пользователь Moadip вот его статия
http://zennolab.com/discussion/threads/raspoznavanie-simvolov-bez-tesseract-cm-i-prochix-servisov.31731/#post-228031 очень интересная тема
 

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