Example #1
0
        private async void DownloadFileAsync(int id)
        {
            var item      = (FileTreeViewItem)GetRows()[id];
            var mediaType = MediaSettings.GetMediaFromRemoteMime(item.MimeType);
            var fileExt   = MediaSettings.GetExtensionFromMedia(mediaType);
            var fileName  = item.FileName;

            if (!string.Equals(System.IO.Path.GetExtension(fileName), fileExt))
            {
                fileName += fileExt;
            }
            var savePath = System.IO.Path.Combine(DownloadSettings.GetDownloadFolderPath(), fileName);

            IsDownloadingFile = true;
            Debug.Log($"Download start: {fileName}");

            switch (mediaType)
            {
            case EMediaType.EXCEL:     // is document
                string localMime = MediaSettings.GetLocalMimeFromMedia(mediaType);
                await DriveAPI.DownloadDocumentAsync(item.FileId, savePath, localMime);

                break;

            default:     // is not document
                await DriveAPI.DownloadFileAsync(item.FileId, savePath);

                break;
            }

            IsDownloadingFile = false;

            Debug.LogFormat("Download end: File saved to: {0}", savePath);
            AssetDatabase.Refresh();
            System.Diagnostics.Process.Start(DownloadSettings.GetDownloadFolderPath()); // ダウンロード先を開く
        }