2012-05-23 22 views

Respuesta

10

Una carpeta puede ser tratada como un archivo con un tipo MIME especial: "application/vnd.google-apps.folder".

El siguiente código C# debe ser lo que necesita:

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(); 

Para más detalles comprobar los documentos: https://developers.google.com/drive/folder

+0

No puedo crear una carpeta y tampoco se recibe ningún error. Además, el método .Fetch() no viene para mí. cómo crear instancias del servicio de discos? Lo estoy usando así DriveService ds = new DriveService(); ds.Key = PicasaAuthToken; gracias. – Sujit

+0

Consulte los documentos para aprender a realizar la autenticación (https://developers.google.com/drive/apps_overview), un token de autenticación de Picasa no ayuda 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

En la API de Google Drive, una carpeta no es más que un archivo con Mime tipo: application/vnd.google-apps.folder

En API v2, que puede utilizar:

// 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; 
} 

Para la creación de la carpeta en el directorio raíz, puede pasar "root" como el ID de los padres.

Cuestiones relacionadas