Список каталогов и файлов Dropbox в C#
- это служба обмена файлами. Бесплатная базовая версия позволяет легко разделить до 2 ГБ файлов через Интернет. Версия Pro $ 9,99 в месяц дает вам до 1 ТБ, а бизнес-версия за 15 долларов США в месяц дает вам неограниченное хранилище.
Чтобы использовать эту услугу, Dropbox создает папку и автоматически синхронизирует ее с удаленным местоположением через Интернет. Вы можете предоставить другим пользователям доступ к подпапкам, чтобы они могли совместно использовать файлы, которые вы там помещали. Это довольно простой способ поделиться фотографиями семьи, деловыми файлами или фотографиями lolcats.
Недавно кто-то спросил меня, как программа C# может перечислить ваши файлы Dropbox. Поскольку Dropbox синхронизирует файлы в папке, это на самом деле довольно просто. Вы просто перечисляете файлы в этой папке. Единственные реальные трюки - найти эту папку и перечислить ее файлы и подкаталоги в элементе управления TreeView. И даже это не так уж сложно.
Когда запускается пример программы, он использует следующий код для отображения местоположения папки Dropbox по умолчанию в текстовом поле.
// Установите каталог Dropbox по умолчанию.
private void Form1_Load(object sender, EventArgs e)
{
string home = Environment.GetEnvironmentVariable("USERPROFILE");
txtStart.Text = Path.Combine(home, "Dropbox");
}
Этот код использует GetEnvironmentVariable для чтения переменной окружения USERPROFILE. Это должно вернуть «домашний» каталог пользователя, как в C: \ Users \ Rod.
Затем код использует Path.Combine для привязки к Dropbox. Метод Path.Combine автоматически добавляет разделитель каталога, если это необходимо (в этом примере), чтобы получить результат, похожий на C: \ Users \ Rod \ Dropbox. р>
Вы можете редактировать каталог в текстовом поле, если это необходимо. Затем нажмите кнопку «Поиск», чтобы выполнить следующий код.
private void btnSearch_Click(object sender, EventArgs e)
{
trvFiles.Nodes.Clear();
SearchDir(trvFiles.Nodes, txtStart.Text);
}
// Список файлов и подкаталогов этого каталога.
private void SearchDir(TreeNodeCollection nodes, string dir_name)
{
TreeNode dir_node = nodes.Add(dir_name);
foreach (string filename in Directory.GetFiles(dir_name))
dir_node.Nodes.Add(filename);
foreach (string subdir in Directory.GetDirectories(dir_name))
SearchDir(dir_node.Nodes, subdir);
}
Обработчик событий Click кнопки поиска <) очищает TreeView программы, а затем вызывает SearchDir, передавая ему TreeView control Nodes и имя папки Dropbox.
Метод SearchDir рекурсивно ищет указанный каталог и добавляет файлы, которые он находит в коллекцию nodes, принимает в качестве параметра.
Метод начинается с добавления каталога, который он ищет в коллекцию nodes. Он сохраняет возвращенный объект TreeNode, который представляет каталог в коллекции.
Далее код использует Directory.GetFiles, чтобы перечислить файлы в каталоге и добавить их в каталог TreeNode.
.
Метод заканчивается с помощью Directory.GetDirectories, чтобы перечислить подкаталоги каталога и рекурсивно вызвать себя для их поиска.
