Как сделать массив из Google.Apis.Drive.v2.Data.File?

1

Я пишу программу для загрузки структур файлов/папок на Google Диск. Одна из вещей, которые я хочу сделать, что очень помогло бы моему коду, сделать некоторые массивы файлов.

Каждый раз, когда я пытался, я получал исключение nullReferenceException, поэтому я убирал все связанные с ним массивы и работал, поэтому я знаю это, потому что я пытаюсь создать массив.

Кто-нибудь знает, как создать массив Google.Apis.Drive.v2.Data.File?

Код:

Google.Apis.Drive.v2.Data.File bigFolder= new Google.Apis.Drive.v2.Data.File();
        Google.Apis.Drive.v2.Data.File[] underFolder= new Google.Apis.Drive.v2.Data.File[4];
        for (int i = 0; i < 4; i++)
        {
            bigFolder.Title = "Folder Title";//used to get a NullReferemceException here, but then made it not an array
            bigFolder.Description = "The folder";
            bigFolder.MimeType = "application/vnd.google-apps.folder";
            bigFolder.Parents = new List<ParentReference>() { new ParentReference() { Id = biggerFolder.Id } };
            bigFolder = service.Files.Insert(bigFolder).Execute();

            underFolder[i].Title = nom[i];//Now get a NullReferemceException here because it an array
            underFolder[i].Description = "The other folder";
            underFolder[i].MimeType = "application/vnd.google-apps.folder";
            underFolder[i].Parents = new List<ParentReference>() { new ParentReference() { Id = bigFolder.Id } };
            underFolder[i] = service.Files.Insert(underFolder[i]).Execute();
}

Любая помощь очень ценится и нужна!

Благодарю!

Теги:
arrays
google-drive-sdk

1 ответ

1
Лучший ответ

Ваша проблема в том, что это NullReferenceException. Прежде чем пытаться назначить элемент массива, который не имеет значения, вы должны убедиться, что вы инициализируете это значение. Пример: перед назначением underFolder[i].title= nom[i]; просто инициализируйте Google.Apis.Drive.v2.Data.File.

Для завершения ответа это должно работать:

Также я бы не bigFolder переменную bigFolder каждый раз, когда вы выполняете цикл. Вместо прямого назначения каждого свойства каждого файла вы можете просто использовать инициализатор объекта.

Google.Apis.Drive.v2.Data.File bigFolder = new Google.Apis.Drive.v2.Data.File
{
    Title = "Folder Title",
    Description = "The folder",
    MimeType = "application/vnd.google-apps.folder",
    Parents = new List<ParentReference>() {new ParentReference() {Id = biggerFolder.Id}}  
};
bigFolder = service.Files.Insert(bigFolder).Execute();

Google.Apis.Drive.v2.Data.File[] underFolder = new Google.Apis.Drive.v2.Data.File[4];
for (int i = 0; i < 4; i++)
{
    underFolder[i] = new Google.Apis.Drive.v2.Data.File
    {
        Title = nom[i],
        Description = "The other folder",
        MimeType = "application/vnd.google-apps.folder",
        Parents = new List<ParentReference>() {new ParentReference() {Id = bigFolder.Id}}
    };
    underFolder[i] = service.Files.Insert(underFolder[i]).Execute();
}
  • 0
    Большое спасибо! Я уже понял это, используя List <File>, но это тоже должно сработать!
  • 0
    Да, я обычно использую списки, так как они более гибкие.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню