Как получить все документы в папке в Google Docs - PullRequest
2 голосов
/ 06 февраля 2012

Я могу получить все документы в Google Docs, используя

    public DocumentsFeed GetDocs()
    {
        DocumentsListQuery query = new DocumentsListQuery();
        DocumentsFeed feed = service.Query(query);
        return feed;
    }

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

Чтобы получить папку, я использую

    public DocumentsFeed GetFolders()
    {
        FolderQuery query = new FolderQuery("root"); //http://docs.google.com/feeds/documents/private/full
        DocumentsFeed feed = service.Query(query);
        return feed;

    }

Для сервиса я использую private DocumentsService service;

Может кто-нибудь помочь?

Ответы [ 2 ]

1 голос
/ 06 февраля 2012

Другой парень, использующий API, описал, как он это делает:

var docService = new DocumentsService("company-app-version");
docService.setUserCredentials("username", "password");
using Google.GData.Client;
using Google.GData.Extensions;
using Google.GData.Documents;

// snipped method declaration etc

var docService = new DocumentsService("company-app-version");
docService.setUserCredentials("username", "password");

var folderList = docService.Query(new FolderQuery());
var fLinks = folderList.Entries.Select(e =>
new
{
    // note how to get the document Id of the folder
    Id = DocumentsListQuery.DocumentId(e.Id.AbsoluteUri),
    Name = e.Title.Text
});

foreach (var folder in fLinks)
{
    Console.WriteLine("Folder {0}", folder.Name);

    var fileList = docService.Query(
        new SpreadsheetQuery()
        {
            // setting the base address to the folder's URI restricts your results
            BaseAddress = DocumentsListQuery.folderBaseUri + folder.Id
        });

    foreach (var file in fileList.Entries)
    {
        Console.WriteLine(" - {0}", file.Title.Text);
    }
}

Источник: http://jtnlex.com/blog/2010/06/09/google-docs-api-get-all-spreadsheetsdocs-in-a-folder/

0 голосов
/ 25 мая 2012

Вот как:

вместо ввода имени папки, используйте resourceID папки query = new FolderQuery(FolderEntry.ResourceId);

Но сначала вам нужно получить ВСЕ документы в корне и включить показ папок: query.ShowFolders = true;, вот как вы получаете resourceId документов в корне папки!

Надеюсь, это поможет!

...