public ActionResult PlayWithFiles() { var drive = FilesHelper.GetUserPersonalDrive(); var root = FilesHelper.GetUserPersonalDriveRoot(); var childrenItems = FilesHelper.ListFolderChildren(drive.Id, root.Id); var newFileOnRoot = UploadSampleFile(drive, root, Server.MapPath("~/AppIcon.png")); // Collect information about children items in the root folder StringBuilder sb = new StringBuilder(); String oneFolderId = null; foreach (var item in childrenItems) { if (item.Folder != null) { sb.AppendFormat("Found folder {0} with {1} child items.\n", item.Name, item.Folder.ChildCount); if (item.Name == "One Folder") { oneFolderId = item.Id; } } else { sb.AppendFormat("Found file {0}.\n", item.Name); } } var filesLog = sb.ToString(); // Create a new folder in the root folder var newFolder = FilesHelper.CreateFolder(drive.Id, root.Id, new Models.DriveItem { Name = $"Folder Created via API - {DateTime.Now.GetHashCode()}", Folder = new Models.Folder { }, }); var newFile = UploadSampleFile(drive, newFolder, Server.MapPath("~/AppIcon.png")); UpdateSampleFile(drive, newFile, Server.MapPath("~/SP2016-MinRoles.jpg")); // Create another folder in the root folder var anotherFolder = FilesHelper.CreateFolder(drive.Id, root.Id, new Models.DriveItem { Name = $"Folder Created via API - {DateTime.Now.GetHashCode()}", Folder = new Models.Folder { }, }); var movedItem = FilesHelper.MoveDriveItem(drive.Id, newFile.Id, "moved.jpg", anotherFolder.Name); var movedFolder = FilesHelper.MoveDriveItem(drive.Id, anotherFolder.Id, "Moved Folder", newFolder.Name); var searchResult = FilesHelper.Search("PnPLogo", drive.Id, root.Id); if (searchResult != null && searchResult.Count > 0) { var firstFileResult = searchResult.FirstOrDefault(i => i.File != null); try { var thumbnails = FilesHelper.GetFileThumbnails(drive.Id, firstFileResult.Id); var thumbnailMedium = FilesHelper.GetFileThumbnail(drive.Id, firstFileResult.Id, Models.ThumbnailSize.Medium); var thumbnailImage = FilesHelper.GetFileThumbnailImage(drive.Id, firstFileResult.Id, Models.ThumbnailSize.Medium); } catch (Exception) { // Something wrong while getting the thumbnail, // We will have to handle it properly ... } } if (newFileOnRoot != null) { try { var permission = FilesHelper.GetDriveItemPermission(newFileOnRoot.Id, "0"); } catch (Exception) { // Something wrong while getting permissions, } FilesHelper.DeleteFile(drive.Id, newFileOnRoot.Id); } #region Under Construction try { var sharingPermission = FilesHelper.CreateSharingLink(newFolder.Id, SharingLinkType.View, SharingLinkScope.Anonymous); } catch (Exception) { // Something wrong while getting the sharing link, } if (!String.IsNullOrEmpty(oneFolderId)) { var newFolderChildren = FilesHelper.ListFolderChildren(drive.Id, newFolder.Id); var newFolderChildFolderChildren = FilesHelper.ListFolderChildren(drive.Id, newFolderChildren.FirstOrDefault(f => f.Folder != null).Id); var file = newFolderChildFolderChildren.FirstOrDefault(f => f.Name == "moved.jpg"); if (file != null) { String jpegContentType = "image/jpeg"; Stream fileContent = FilesHelper.GetFileContent(drive.Id, file.Id, jpegContentType); return(base.File(fileContent, jpegContentType, file.Name)); } } #endregion return(View("Index")); }