2016-01-22 1 views
0

Я создаю приложение в MVC Asp.net, в котором я хочу загрузить файл на Google Drive. Следующий код успешного создания новой папки и сохранение файла в этой папке:Создать папку, если она не существует на Google Диске в Asp.net

public void Upload(string fileName, byte[] bytes) 
     { 
      if (_userCredential != null) 
      { 
       var service = new DriveService(new BaseClientService.Initializer 
       { 
        HttpClientInitializer = _userCredential, 
        ApplicationName = "Test App" 
       }); 

       var file = new File { Title = "Test folder", MimeType = "application/vnd.google-apps.folder" }; 
       var result = service.Files.Insert(file).Execute(); 
       var saveresult = result.Id; 

       Google.Apis.Drive.v2.Data.File body = new Google.Apis.Drive.v2.Data.File(); 
       body.Title = fileName; 
       body.Description = "A test document"; 
       body.MimeType = "application/zip"; 
       body.Parents = new List<ParentReference>() { new ParentReference() { Id = saveresult } }; 
       var stream = new System.IO.MemoryStream(bytes); 
       FilesResource.InsertMediaUpload request = service.Files.Insert(body, stream, "text/plain"); 
       request.Upload(); 
       if (request.ResponseBody == null) 
       { 
        throw new Exception("User remove access to aplication."); 
       } 
      } 
     } 

Теперь проблема после сохранения файла один раз, когда я пытаюсь сохранить файл снова создает другую папку и сохраните файл в эту папку, но я хочу проверить, существует ли папка, кроме сохранения файла в этой папке, и если папка не существует, она сначала создает папку, чем сохраняет этот файл. Спасибо.

ответ

0

Вы можете проверить более details.

using Google.Apis.Drive.v2; 
using Google.Apis.Drive.v2.Data; 

// ... 

public class MyClass { 

// ... 

/// <summary> 
/// Print files belonging to a folder. 
/// </summary> 
/// <param name="service">Drive API service instance.</param> 
/// <param name="folderId">ID of the folder to print files from</param> 
public static void PrintFilesInFolder(DriveService service, 
    String folderId) { 
ChildrenResource.ListRequest request = service.Children.List(folderId); 

do { 
    try { 
    ChildList children = request.Execute(); 

    foreach (ChildReference child in children.Items) { 
     Console.WriteLine("File Id: " + child.Id); 
    } 
    request.PageToken = children.NextPageToken; 
    } catch (Exception e) { 
    Console.WriteLine("An error occurred: " + e.Message); 
    request.PageToken = null; 
    } 
    } while (!String.IsNullOrEmpty(request.PageToken)); 
    } 

    // ... 

    }