Я пишу программу для загрузки структур файлов/папок на 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();
}
Любая помощь очень ценится и нужна!
Благодарю!
Ваша проблема в том, что это 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();
}