Список каталогов и файлов Dropbox в C#

Dropbox - это служба обмена файлами. Бесплатная базовая версия позволяет легко разделить до 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, чтобы перечислить подкаталоги каталога и рекурсивно вызвать себя для их поиска.

Источник: http://csharphelper.com/blog/2015/10/list-dropbox-directories-and-files-in-c/

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Adblock
detector