Как получить все содержимое папки?

docent299

Client
Регистрация
18.12.2015
Сообщения
29
Благодарностей
6
Баллы
3
Добрый день, не пойму как получить все содержимое папки, чтобы выгрузить по ФТП на сервер.
То есть, есть папка в которой находятся файлы и папки которые нужно выгрузить на сервер. С файлами понятно, а вот с папками проблема.
Изначально сделал так, экшеном "директории" => получал список файлов из нужной папки => ложил в список => затем из списка поочередно брал имя файла => выгружал на сервер => все ок.
А вот для папок из этой директории пришлось делать отдельные экшены для каждой папки, и тут возникла проблема, если в основную директорию добавить новую папку, для нее нужно добавлять отдельный экшен.
Может есть способ, как выгрузить все содержимое корневой директории (файлы, папки)
 

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
22 480
Благодарностей
5 917
Баллы
113

docent299

Client
Регистрация
18.12.2015
Сообщения
29
Благодарностей
6
Баллы
3
Можно же сразу целую директорию по ФТП загрузить - http://zennolab.com/wiki/ru:actions:ftp
Это я знаю, дело в том что, если загрузить сразу всю директорию, она отлинкуется от домена, я уже пробовал называть папку public_html и выгружать ее, но сайт переставал работать (хз может глюк хостера). Приходилось повторно привязывать домен к папке.
По этому нужен вариант именно со списком файлов и папок, с файлами проблем нет, а вот как получить список папок в корневой директории?
 

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
22 480
Благодарностей
5 917
Баллы
113
Как это отлинкуется от домена... Не понимаю...
 

docent299

Client
Регистрация
18.12.2015
Сообщения
29
Благодарностей
6
Баллы
3
Сам не понимаю, но если выгружать тупо папку public_html сайт перестает работать. Приходится лезть в панел управления, и заново привязывать домен к папке с файлами.
То есть при добавлении домена в панели, создается папка с названием домена, и в ней папка public_html, а в ней уже папки и файлы сайта. В панели написано что домен site.ru прикреплен к папке site.ru/public_html
Если залить новую папку public_html и зайти в панель управления то домен уже не прикреплен не к одной папке на сервере, приходится ручками его цеплять.
Вот такой геморрой.
 
Последнее редактирование:

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
22 480
Благодарностей
5 917
Баллы
113
Сам не понимаю, но если выгружать тупо папку public_html сайт перестает работать. Приходится лезть в панел управления, и заново привязывать домен к папке с файлами.
То есть при добавлении домена в панели, создается папка с названием домена, и в ней папка public_html, а в ней уже папки и файлы сайта. В панели написано что домен site.ru прикреплен к папке site.ru/public_html
Если залить новую папку public_html и зайти в панель управления то домен уже не прикреплен не к одной папке на сервере, приходится ручками его цеплять.
Вот такой геморрой.
Может просто админам хостинга написать о проблеме с папкой?)
 

docent299

Client
Регистрация
18.12.2015
Сообщения
29
Благодарностей
6
Баллы
3
Может просто админам хостинга написать о проблеме с папкой?)
То есть получить полный список папок и файлов в определенной директории не как нельзя?
Просто было бы неплохо к экшену "Директории" => "Получить список файлов" прикрутить пункт "Учитывать папки", что бы можно было получить полный перечень всех находящихся внутри элементов.
 

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
22 480
Благодарностей
5 917
Баллы
113

docent299

Client
Регистрация
18.12.2015
Сообщения
29
Благодарностей
6
Баллы
3

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
22 480
Благодарностей
5 917
Баллы
113
Ок, этот код считает количество элементов в папке, вопрос был в том как получить их имена.
И на этот вопрос там тоже отвечено. Метод GetDirectories.
Код:
return System.IO.Directory.GetDirectories(@"C:\folder");
 

docent299

Client
Регистрация
18.12.2015
Сообщения
29
Благодарностей
6
Баллы
3
И на этот вопрос там тоже отвечено. Метод GetDirectories.
Код:
return System.IO.Directory.GetDirectories(@"C:\folder");
Не работает, вернул в переменную такое значение: System.String[]
Вот сам код: return System.IO.Directory.GetDirectories(@"E:\Программы для работы\ZennoPoster\DorGen2\Dorgen");
Второе, в этом коде как я понял нельзя использовать команды типа {-Project.Directory-}, что затрудняет его использование, т.к. я изначально не знаю где у человека будет лежать нужная папка.
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 715
Баллы
113
Не работает, вернул в переменную такое значение: System.String[]
Вот сам код: return System.IO.Directory.GetDirectories(@"E:\Программы для работы\ZennoPoster\DorGen2\Dorgen");
Второе, в этом коде как я понял нельзя использовать команды типа {-Project.Directory-}, что затрудняет его использование, т.к. я изначально не знаю где у человека будет лежать нужная папка.
Код:
var subdir = System.IO.Directory.GetDirectories(project.Directory);
for(int i=0;i<subdir.Length;i++)
{
    project.Lists["subdir"].Add(subdir[i]);
}
список с именем subdir только создать нужно
 

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
22 480
Благодарностей
5 917
Баллы
113
Не работает, вернул в переменную такое значение: System.String[]
Вот сам код: return System.IO.Directory.GetDirectories(@"E:\Программы для работы\ZennoPoster\DorGen2\Dorgen");
Второе, в этом коде как я понял нельзя использовать команды типа {-Project.Directory-}, что затрудняет его использование, т.к. я изначально не знаю где у человека будет лежать нужная папка.
Код:
string [] dir = System.IO.Directory.GetDirectories(project.Directory);
return string.Join("\r\n", dir);
 
  • Спасибо
Реакции: megalith

docent299

Client
Регистрация
18.12.2015
Сообщения
29
Благодарностей
6
Баллы
3
Код:
var subdir = System.IO.Directory.GetDirectories(project.Directory);
for(int i=0;i<subdir.Length;i++)
{
    project.Lists["subdir"].Add(subdir[i]);
}
список с именем subdir только создать нужно
Благодарю, то что нужно.

Код:
string [] dir = System.IO.Directory.GetDirectories(project.Directory);
return string.Join("\r\n", dir);
К сожалению не то, но все равно благодарю за помощь.
 

docent299

Client
Регистрация
18.12.2015
Сообщения
29
Благодарностей
6
Баллы
3
Код:
var subdir = System.IO.Directory.GetDirectories(@"{-Project.Directory-}Upload");
for(int i=0;i<subdir.Length;i++)
{
    project.Lists["Temp"].Add(subdir[i]);
}
Добрый день, подскажите пожалуйста, что нужно изменить в коде.

Задача: получить список подпапок в папке (project.Directory ->Upload->имя папки) имя папки при каждом проходе шаблона изменяется, то есть
1 проход, project.Directory ->Upload->папка 1
2 проход, project.Directory ->Upload->папка 2
3 проход, project.Directory ->Upload->папка 3 и т.д.

Название папки лежит в переменной {-Variable.folderName-}

Или как вместо (@"{-Project.Directory-}Upload"); подставить переменную в которой будет лежать путь к нужной папке, к примеру переменная {-Variable.pathToFolderName-}

(@"{-Variable.pathToFolderName-}"); Такой вариант не работает.
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 685
Благодарностей
4 642
Баллы
113
Добрый день, подскажите пожалуйста, что нужно изменить в коде.

Задача: получить список подпапок в папке (project.Directory ->Upload->имя папки) имя папки при каждом проходе шаблона изменяется, то есть
1 проход, project.Directory ->Upload->папка 1
2 проход, project.Directory ->Upload->папка 2
3 проход, project.Directory ->Upload->папка 3 и т.д.

Название папки лежит в переменной {-Variable.folderName-}

Или как вместо (@"{-Project.Directory-}Upload"); подставить переменную в которой будет лежать путь к нужной папке, к примеру переменная {-Variable.pathToFolderName-}

(@"{-Variable.pathToFolderName-}"); Такой вариант не работает.
(project.Directory+@"\Upload");
(project.Variables["pathToFolderName"].Value+@"\Upload");
 

Shining

Client
Регистрация
25.05.2018
Сообщения
36
Благодарностей
0
Баллы
6
Код:
var subdir = System.IO.Directory.GetDirectories(project.Directory);
for(int i=0;i<subdir.Length;i++)
{
    project.Lists["subdir"].Add(subdir[i]);
}
список с именем subdir только создать нужно
Подскажите пожалуйста как через С# получить все файлы в список, но с учетом "Искать в поддирректориях"? Проблема что много поддиректорий и ненаходит файлы в глубине(
 

Koqpe

Client
Регистрация
23.12.2014
Сообщения
1 099
Благодарностей
648
Баллы
113
Подскажите пожалуйста как через С# получить все файлы в список, но с учетом "Искать в поддирректориях"? Проблема что много поддиректорий и ненаходит файлы в глубине(
Попробуй так:
C#:
//Формируем список доступных фотографий
//Присваиваем переменной путь к папке с файлами
string strFolderPhotoPath = project.Variables["pathPhotoFolder"].Value;//Путь до папки с фотографиями
string strPhotoDirectoryPath = strFolderPhotoPath;
Directory.CreateDirectory(strPhotoDirectoryPath); //создадим директорию, перечень файлов из которой будем получать
//Создадим объект списка, связанный со списком уровня проекта "subdir", очистим этот список
IZennoList lstPhotoPath = project.Lists["subdir"];
lstPhotoPath.Clear();

//Directory.EnumerateFiles: получаем список файлов, в  данном случае ищем по маске "*.jpg", можешь оставить только звездочку, будет искать все файлы
lstPhotoPath.AddRange(Directory.EnumerateFiles(strPhotoDirectoryPath, "*.jpg", SearchOption.AllDirectories));

// Если необходимо получить файлы только из исходной папки, но не из вложенных папок, используйте SearchOption.TopDirectoryOnly вместо SearchOption.AllDirectories
 
Последнее редактирование:
  • Спасибо
Реакции: RazDvaTri и Shining

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