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

  • Автор темы Автор темы docent299
  • Дата начала Дата начала

docent299

Client
Регистрация
18.12.2015
Сообщения
29
Реакции
6
Баллы
3
Добрый день, не пойму как получить все содержимое папки, чтобы выгрузить по ФТП на сервер.
То есть, есть папка в которой находятся файлы и папки которые нужно выгрузить на сервер. С файлами понятно, а вот с папками проблема.
Изначально сделал так, экшеном "директории" => получал список файлов из нужной папки => ложил в список => затем из списка поочередно брал имя файла => выгружал на сервер => все ок.
А вот для папок из этой директории пришлось делать отдельные экшены для каждой папки, и тут возникла проблема, если в основную директорию добавить новую папку, для нее нужно добавлять отдельный экшен.
Может есть способ, как выгрузить все содержимое корневой директории (файлы, папки)
 
Можно же сразу целую директорию по ФТП загрузить - http://zennolab.com/wiki/ru:actions:ftp
Это я знаю, дело в том что, если загрузить сразу всю директорию, она отлинкуется от домена, я уже пробовал называть папку public_html и выгружать ее, но сайт переставал работать (хз может глюк хостера). Приходилось повторно привязывать домен к папке.
По этому нужен вариант именно со списком файлов и папок, с файлами проблем нет, а вот как получить список папок в корневой директории?
 
Как это отлинкуется от домена... Не понимаю...
 
Сам не понимаю, но если выгружать тупо папку public_html сайт перестает работать. Приходится лезть в панел управления, и заново привязывать домен к папке с файлами.
То есть при добавлении домена в панели, создается папка с названием домена, и в ней папка public_html, а в ней уже папки и файлы сайта. В панели написано что домен site.ru прикреплен к папке site.ru/public_html
Если залить новую папку public_html и зайти в панель управления то домен уже не прикреплен не к одной папке на сервере, приходится ручками его цеплять.
Вот такой геморрой.
 
Последнее редактирование:
Сам не понимаю, но если выгружать тупо папку public_html сайт перестает работать. Приходится лезть в панел управления, и заново привязывать домен к папке с файлами.
То есть при добавлении домена в панели, создается папка с названием домена, и в ней папка public_html, а в ней уже папки и файлы сайта. В панели написано что домен site.ru прикреплен к папке site.ru/public_html
Если залить новую папку public_html и зайти в панель управления то домен уже не прикреплен не к одной папке на сервере, приходится ручками его цеплять.
Вот такой геморрой.
Может просто админам хостинга написать о проблеме с папкой?)
 
Может просто админам хостинга написать о проблеме с папкой?)
То есть получить полный список папок и файлов в определенной директории не как нельзя?
Просто было бы неплохо к экшену "Директории" => "Получить список файлов" прикрутить пункт "Учитывать папки", что бы можно было получить полный перечень всех находящихся внутри элементов.
 
Ок, этот код считает количество элементов в папке, вопрос был в том как получить их имена.
И на этот вопрос там тоже отвечено. Метод GetDirectories.
Код:
Развернуть Свернуть Копировать
return System.IO.Directory.GetDirectories(@"C:\folder");
 
И на этот вопрос там тоже отвечено. Метод GetDirectories.
Код:
Развернуть Свернуть Копировать
return System.IO.Directory.GetDirectories(@"C:\folder");
Не работает, вернул в переменную такое значение: System.String[]
Вот сам код: return System.IO.Directory.GetDirectories(@"E:\Программы для работы\ZennoPoster\DorGen2\Dorgen");
Второе, в этом коде как я понял нельзя использовать команды типа {-Project.Directory-}, что затрудняет его использование, т.к. я изначально не знаю где у человека будет лежать нужная папка.
 
Не работает, вернул в переменную такое значение: 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 только создать нужно
 
Не работает, вернул в переменную такое значение: 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
Код:
Развернуть Свернуть Копировать
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);
К сожалению не то, но все равно благодарю за помощь.
 
Код:
Развернуть Свернуть Копировать
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-}"); Такой вариант не работает.
 
Добрый день, подскажите пожалуйста, что нужно изменить в коде.

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

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