2016-10-19 5 views
1

Я храню всю свою информацию о приложении в Google Cloud Storage. Я создал ведро и внутри этого ведра у меня есть папки. С помощью этого кода я могу получить список всех моих папок.C# Google Cloud Storage Get ListObjects in Folders

public static IList<uFolder> ListFolders(string bucketName) 
{ 
    if (storageService == null) 
    { 
      CreateAuthorizedClient(); 
    } 

    Objects objects = storageService.Objects.List(bucketName).Execute(); 
    if (objects.Items != null) 
    { 
      return objects.Items. 
       Where(x => x.ContentType == "application/x-www-form-urlencoded;charset=UTF-8"). 
       Select(x => new uFolder(x.Name)).ToList(); 
     } 
     return null; 
} 

Но на самом деле этот код, получить все мои файлы и папки в моем ковше. Поэтому мне нужно их извлечь. Мой первый вопрос: есть ли ярлык для этого метода?

Мой другой и самый важный вопрос: как я могу получить все файлы только в определенной папке? Например; Мое имя ковша - MyBucket, и я хочу получить все файлы из «MyBucket/2 /». Как я могу это сделать? Это единственный способ проверить медианную ссылку или ссылку на файлы?

Спасибо за ответ. Имейте хороший день, хорошие работы ...

ответ

1

Если вы хотите получить верхние папки в своем облачном хранилище Google, каждый может использовать;

ObjectsResource.ListRequest request = storageService.Objects.List(CurrentBucket); 
request.Delimiter = "/"; 
Google.Apis.Storage.v1.Data.Objects response = request.Execute(); 
if (response.Prefixes != null) 
{ 
    return response.Prefixes.ToList(); 
} 

Если вы хотите получить папки внутри определенной папки;

ObjectsResource.ListRequest request = storageService.Objects.List(CurrentBucket); 
request.Delimiter = "/"; 
request.Prefix = delimiter; //delimiter is any sub-folder name. E.g : "2010/" 
Google.Apis.Storage.v1.Data.Objects response = request.Execute(); 
if (response.Prefixes != null) 
{ 
    return response.Prefixes.ToList(); 
} 

Внимание: Я возвращаюсь префиксы для достигают папок.

0

Я думаю, что вы хотите установить свойство Delimiter для запроса списка на /. Это вернет результат с ограничением на верхнем уровне вашей иерархии.

+0

Можете ли вы показать мне пример с C#? Я не могу найти какой-либо пример в Интернете –

+0

Хорошо, я могу это сделать. Спасибо за ответ. Хороший день :) –

+0

Mr jterrace, Могу ли я получить список всех папок и файлов в верхнем каталоге? –