2012-05-23 30 views

risposta

10

Una cartella può essere trattata come un file con un tipo MIME speciale: "application/vnd.google-apps.folder".

Il seguente codice C# dovrebbe essere quello che ti serve:

File body = new File(); 
body.Title = "document title"; 
body.Description = "document description"; 
body.MimeType = "application/vnd.google-apps.folder"; 

// service is an authorized Drive API service instance 
File file = service.Files.Insert(body).Fetch(); 

Per maggiori dettagli si veda la documentazione: https://developers.google.com/drive/folder

+0

Non riesco a creare la cartella e non viene ricevuto nessun errore. Inoltre il metodo .Fetch() non viene per me? come istanziare driveervice? lo sto usando in questo modo DriveService ds = new DriveService(); ds.Key = PicasaAuthToken; grazie. – Sujit

+0

Controlla i documenti per sapere come eseguire l'autenticazione (https://developers.google.com/drive/apps_overview), un token di autenticazione di Picasa non è d'aiuto con Drive. –

0
//First you will need a DriveService: 

ClientSecrets cs = new ClientSecrets(); 
cs.ClientId = yourClientId; 
cs.ClientSecret = yourClientSecret; 

credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
         cs, 
         new[] { DriveService.Scope.Drive }, 
         "user", 
         CancellationToken.None, 
         null 
        ).Result; 

DriveService service = new DriveService(new BaseClientService.Initializer() 
       { 
        HttpClientInitializer = credential, 
        ApplicationName = "TheAppName" 
       }); 

//then you can upload the file: 

File body = new File(); 
body.Title = "document title"; 
body.Description = "document description"; 
body.MimeType = "application/vnd.google-apps.folder"; 

File folder = service.Files.Insert(body).Execute(); 
0

In API di Google Drive, una cartella non è altro che un file con Mime tipo: application/vnd.google-apps.folder

In API v2, è possibile utilizzare:

// DriveService _service: Valid, authenticated Drive service 
    // string_ title: Title of the folder 
    // string _description: Description of the folder 
    // _parent: ID of the parent directory to which the folder should be created 

public static File createDirectory(DriveService _service, string _title, string _description, string _parent) 
{ 
    File NewDirectory = null; 

    File body = new File(); 
    body.Title = _title; 
    body.Description = _description; 
    body.MimeType = "application/vnd.google-apps.folder"; 
    body.Parents = new List<ParentReference>() { new ParentReference() { Id = _parent } }; 
    try 
    { 
     FilesResource.InsertRequest request = _service.Files.Insert(body); 
     NewDirectory = request.Execute(); 
    } 
    catch(Exception e) 
    { 
     MessageBox.Show(e.Message, "Error Occured"); 
    } 
    return NewDirectory; 
} 

Per creare una cartella nella directory principale, è possibile passare "root" come ID padre.

Problemi correlati