Example #1
0
    public void Connect()
    {
        string[] Scopes = new string[] { DriveService.Scope.Drive,
                                     DriveService.Scope.DriveFile};
        string ApplicationName = "Drive API Quickstart";
        UserCredential credential;
        using (var stream =
                    new FileStream("client_secret.json", FileMode.Open, FileAccess.Read))
        {
            string credPath = System.Environment.GetFolderPath(
                System.Environment.SpecialFolder.Personal);
            credPath = Path.Combine(credPath, ".credentials");

            credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
                GoogleClientSecrets.Load(stream).Secrets,
                Scopes,
                "user",
                CancellationToken.None,
                new FileDataStore(credPath, true)).Result;
            //Console.WriteLine("Credential file saved to: " + credPath);
        }

        service = new DriveService(new BaseClientService.Initializer()
        {
            HttpClientInitializer = credential,
            ApplicationName = ApplicationName,
        });
        listRequest = service.Files.List();

        listRequest.MaxResults = 1000;

        firstPageToken = listRequest.PageToken;
    }
Example #2
0
        private void Form1_Load(object sender, EventArgs e)
        {
            UserCredential credential;

            using (var stream =
                       new FileStream("client_secret.json", FileMode.Open, FileAccess.Read))
            {
                string credPath = System.Environment.GetFolderPath(
                    System.Environment.SpecialFolder.Personal);
                credPath = Path.Combine(credPath, ".credentials/drive-dotnet-quickstart.json");

                credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
                    GoogleClientSecrets.Load(stream).Secrets,
                    Scopes,
                    "user",
                    CancellationToken.None,
                    new FileDataStore(credPath, true)).Result;
                MessageBox.Show("Credential file saved to: " + credPath);
            }

            // Create Drive API service.
            var service = new DriveService(new BaseClientService.Initializer()
            {
                HttpClientInitializer = credential,
                ApplicationName       = ApplicationName,
            });

            // Define parameters of request.
            FilesResource.ListRequest listRequest = service.Files.List();
            listRequest.PageSize = 10;
            listRequest.Fields   = "nextPageToken, files(id, name)";

            // List files.
            IList <Google.Apis.Drive.v3.Data.File> files = listRequest.Execute()
                                                           .Files;

            MessageBox.Show("Files:");
            if (files != null && files.Count > 0)
            {
                foreach (var file in files)
                {
                    Console.WriteLine("{0} ({1})", file.Name, file.Id);
                }
            }
            else
            {
                MessageBox.Show("No files found.");
            }
        }
Example #3
0
        /// <summary>
        /// List all of the files and directories for the current user.
        ///
        /// Documentation: https://developers.google.com/drive/v2/reference/files/list
        /// Documentation Search: https://developers.google.com/drive/web/search-parameters
        /// </summary>
        /// <param name="service">a Valid authenticated DriveService</param>
        /// <param name="search">if Search is null will return all files</param>
        /// <returns></returns>
        public static IList <File> GetFiles(DriveService service, string search)
        {
            IList <File> Files = new List <File>();

            try
            {
                //List all of the files and directories for the current user.
                // Documentation: https://developers.google.com/drive/v2/reference/files/list
                FilesResource.ListRequest list = service.Files.List();



                list.MaxResults = 1000;
                if (search != null)
                {
                    list.Q = search;
                }
                FileList filesFeed = list.Execute();

                //// Loop through until we arrive at an empty page
                while (filesFeed.Items != null)
                {
                    // Adding each item  to the list.
                    foreach (File item in filesFeed.Items)
                    {
                        Files.Add(item);
                    }

                    // We will know we are on the last page when the next page token is
                    // null.
                    // If this is the case, break.
                    if (filesFeed.NextPageToken == null)
                    {
                        break;
                    }

                    // Prepare the next page of results
                    list.PageToken = filesFeed.NextPageToken;

                    // Execute and process the next page request
                    filesFeed = list.Execute();
                }
            }
            catch (Exception ex) {
                // In the event there is an error with the request.
                Console.WriteLine(ex.Message);
            }
            return(Files);
        }
Example #4
0
        private void button1_Click(object sender, EventArgs e)
        {
            string[] scopes = new string[] { DriveService.Scope.Drive,
                                             DriveService.Scope.DriveFile };
            var clientId     = "781187646141-cj76ogmifqklfirjae62afm8blo2v4a0.apps.googleusercontent.com";
            var clientSecret = "5PGwIurTyd_7lA4tOGLp_oO_";

            var credential = GoogleWebAuthorizationBroker.AuthorizeAsync(new ClientSecrets
            {
                ClientId     = clientId,
                ClientSecret = clientSecret
            },
                                                                         scopes,
                                                                         Environment.UserName,
                                                                         CancellationToken.None,
                                                                         new FileDataStore("Epocum_Remote")).Result;

            DriveService service = new DriveService(new BaseClientService.Initializer()
            {
                HttpClientInitializer = credential,
                ApplicationName       = "Epocum",
            });

            service.HttpClient.Timeout = TimeSpan.FromMinutes(100);

            // Define parameters of request.
            FilesResource.ListRequest listRequest = service.Files.List();
            listRequest.PageSize = 10;
            listRequest.Fields   = "nextPageToken, files(id, name)";

            // List files.
            IList <Google.Apis.Drive.v3.Data.File> files = listRequest.Execute()
                                                           .Files;

            int a = 0;

            if (files != null && files.Count > 0)
            {
                foreach (var file in files)
                {
                    listBox1.Items.Insert(a, "Filename: " + file.Name + "  ID: " + file.Id);
                    a++;
                }
            }
            else
            {
                listBox1.Items.Insert(a, "No files found.");
            }
        }
Example #5
0
        public static void Initialize()
        {
            UserCredential credential;

            using (var stream =
                       new FileStream(ApplicationData.Current.LocalFolder.Path + "\\client_secret.json", FileMode.Open, FileAccess.Read))
            {
                StorageFolder rootFolder = ApplicationData.Current.LocalFolder;
                string        credPath   = Path.Combine(rootFolder.Path, ".credentials/drive-dotnet-quickstart.json");

                credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
                    GoogleClientSecrets.Load(stream).Secrets,
                    Scopes,
                    "user",
                    CancellationToken.None,
                    new FileDataStore(credPath, true)).Result;
                Console.WriteLine("Credential file saved to: " + credPath);
            }

            // Create Drive API service.
            var service = new DriveService(new BaseClientService.Initializer()
            {
                HttpClientInitializer = credential,
                ApplicationName       = ApplicationName,
            });

            // Define parameters of request.
            FilesResource.ListRequest listRequest = service.Files.List();
            listRequest.PageSize = 10;
            listRequest.Fields   = "nextPageToken, files(id, name)";

            // List files.
            IList <Google.Apis.Drive.v3.Data.File> files = listRequest.Execute()
                                                           .Files;

            Console.WriteLine("Files:");
            if (files != null && files.Count > 0)
            {
                foreach (var file in files)
                {
                    Console.WriteLine("{0} ({1})", file.Name, file.Id);
                }
            }
            else
            {
                Console.WriteLine("No files found.");
            }
            Console.Read();
        }
Example #6
0
        public List <Google.Apis.Drive.v3.Data.File> GetFileList(string searchFilter = null, DriveService service = null)
        {
            List <Google.Apis.Drive.v3.Data.File> files = new List <Google.Apis.Drive.v3.Data.File>();

            try
            {
                if (service == null)
                {
                    service = GetDriveService();
                }
                if (service != null)
                {
                    string pageToken = null; // get all; use "nextPageToken" for paging
                    do
                    {
                        FilesResource.ListRequest request = service.Files.List();
                        request.Fields = "nextPageToken, files(id, name, fileExtension, mimeType, parents)";
                        if (searchFilter != null)
                        {
                            request.Q = searchFilter;
                        }
                        request.PageSize = FILE_PAGE_SIZE;
                        request.Spaces   = "drive";
                        var result = request.Execute();
                        files.AddRange(result.Files);
                        pageToken = result.NextPageToken;
                        if (files.Count > MAZ_FILES_ALLOWED)
                        {
                            break;
                        }
                    } while (pageToken != null);

                    return(files);
                }
            }
            catch (Google.GoogleApiException ex)
            {
                if (ex.HttpStatusCode != System.Net.HttpStatusCode.NotFound)
                {
                    throw;
                }
            }
            catch (Exception ex)
            {
                throw;
            }

            return(files);
        }
Example #7
0
        static void Main(string[] args)
        {
            UserCredential credential;

            using (var stream =
                       new FileStream("client_id.json", FileMode.Open, FileAccess.Read))
            {
                // The file token.json stores the user's access and refresh tokens, and is created
                // automatically when the authorization flow completes for the first time.
                string credPath = "token.json";
                credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
                    GoogleClientSecrets.Load(stream).Secrets,
                    Scopes,
                    "user",
                    CancellationToken.None,
                    new FileDataStore(credPath, true)).Result;
                Console.WriteLine("Credential file saved to: " + credPath);
            }

            // Create Drive API service.
            var service = new DriveService(new BaseClientService.Initializer()
            {
                HttpClientInitializer = credential,
                ApplicationName       = ApplicationName,
            });

            // Define parameters of request.
            FilesResource.ListRequest listRequest = service.Files.List();
            listRequest.PageSize = 10;
            listRequest.Fields   = "nextPageToken, files(id, name)";

            // List files.
            IList <Google.Apis.Drive.v3.Data.File> files = listRequest.Execute()
                                                           .Files;

            Console.WriteLine("Files:");
            if (files != null && files.Count > 0)
            {
                foreach (var file in files)
                {
                    Console.WriteLine("{0} ({1})", file.Name, file.Id);
                }
            }
            else
            {
                Console.WriteLine("No files found.");
            }
            Console.Read();
        }
Example #8
0
        public List <DirectoryEntry> GetMatchingDriveEntries(string searchCriteria)
        {
            List <DirectoryEntry> entries = new List <DirectoryEntry>();

            try
            {
                FilesResource.ListRequest list = Connector.DriveService.Files.List();
                list.PageSize = Connector.PAGE_SIZE;
                if (searchCriteria != null)
                {
                    list.Q      = searchCriteria;
                    list.Fields = Connector.DRIVE_QUERY_FIELDS;
                    list.Spaces = Connector.DRIVE_QUERY_SPACES;
                }
                FileList filesFeed = list.Execute();
                //// Loop through until we arrive at an empty page.
                while (filesFeed.Files != null)
                {
                    foreach (Google.Apis.Drive.v3.Data.File item in filesFeed.Files)
                    {
                        DirectoryEntry f = new DirectoryEntry();
                        f.EntryId   = item.Id;
                        f.EntryName = item.Name;
                        f.EntryPath = Connector.GetAbsPath(item);
                        f.MimeType  = item.MimeType;
                        f.StdSize   = item.Size ?? 0;
                        f.StdType   = item.FileExtension ?? Connector.DIR_EXTENSION;
                        f.StdDate   = item.ModifiedTime ?? DateTime.MinValue;
                        entries.Add(f);
                    }
                    // We will know we are on the last page when the next page token is
                    // null.
                    // If this is the case, break.
                    if (filesFeed.NextPageToken == null)
                    {
                        break;
                    }
                    // Prepare the next page of results
                    list.PageToken = filesFeed.NextPageToken;
                    // Execute and process the next page request
                    filesFeed = list.Execute();
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
            return(entries);
        }
Example #9
0
        private static IList <File> FindFiles(DriveService driveService, string?query = null)
        {
            // Define parameters of request.
            FilesResource.ListRequest listRequest = driveService.Files.List();
            listRequest.PageSize = 10;
            listRequest.Fields   = "nextPageToken, files(id, name, webViewLink)";
            if (query != null)
            {
                listRequest.Q = query;
            }

            IList <File> files = listRequest.Execute().Files;

            return(files);
        }
Example #10
0
        internal static void InsertNew(DriveService service, HttpPostedFileBase file)
        {
            FilesResource.ListRequest FileListRequest = service.Files.List();
            FileListRequest.Fields = "nextPageToken, files(id, name)";
            IList <Google.Apis.Drive.v3.Data.File> files = FileListRequest.Execute().Files; // get all file at google disk

            foreach (var file_ in files)
            {
                if (file_.Name == file.FileName) // find image
                {
                    image = "https://lh3.google.com/u/0/d/" + file_.Id;
                    break;
                }
            }
        }
Example #11
0
        public static IList <Google.Apis.Drive.v3.Data.File> listFolderDrive()
        {
            GoogleDrive.login("C:\\token.json\\cred.json", false);

            IDictionary <string, string> res = new Dictionary <string, string>();

            FilesResource.ListRequest listRequest = GoogleDrive.service.Files.List();
            listRequest.Fields = "nextPageToken, files(id, name)";
            listRequest.Q      = "mimeType='application/vnd.google-apps.folder' and trashed=false";

            IList <Google.Apis.Drive.v3.Data.File> fldrs = listRequest.Execute()
                                                           .Files;

            return(fldrs);
        }
        private async Task <string> FindFile(DriveService service, Func <GoogleData.File, bool> predicate)
        {
            FilesResource.ListRequest listRequest = service.Files.List();
            GoogleData.FileList       fileList    = await listRequest.ExecuteAsync().ConfigureAwait(false);

            foreach (GoogleData.File file in fileList.Files)
            {
                if (predicate(file))
                {
                    return(file.Id);
                }
            }

            return(string.Empty);
        }
Example #13
0
        /// <summary>
        /// Returns all files inside a directory
        /// </summary>
        /// <param name="dir">Directory name</param>
        /// <returns></returns>
        public IList <Google.Apis.Drive.v3.Data.File> GetFiles(string dir)
        {
            if (DirectoryExists(dir))
            {
                FilesResource.ListRequest request = service.Files.List();
                request.Fields = "nextPageToken, files(name, size, id)";
                request.Q      = "mimeType != 'application/vnd.google-apps.folder' and trashed = false";

                var result = request.Execute();

                return(result.Files);
            }

            return(null);
        }
Example #14
0
        private void SetRoot()
        {
            FilesResource.ListRequest listRequest = Service.Files.List();
            listRequest.PageSize  = 1;
            listRequest.Fields    = "nextPageToken, files(id, parents)";
            listRequest.PageToken = null;
            listRequest.Q         = "parents in 'root' and trashed=false";
            var request = listRequest.Execute();
            var files   = request.Files;

            if (files != null && files.Count > 0)
            {
                Root = files[0].Parents[0];
            }
        }
Example #15
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="driveService"></param>
        /// <param name="fields"></param>
        /// <returns></returns>
        public IList <Google.Apis.Drive.v3.Data.File> GetFiles(string fields = "id, name, parents, webContentLink, mimeType")
        {
            IList <Google.Apis.Drive.v3.Data.File> files = new List <Google.Apis.Drive.v3.Data.File>();

            // Define parameters of request.
            FilesResource.ListRequest listRequest = this.driveService.Files.List();
            listRequest.PageSize = 999999999;
            listRequest.Fields   = string.Format("nextPageToken, files({0})", fields);

            // List files.
            files = listRequest.Execute()
                    .Files;

            return(files);
        }
Example #16
0
        public static IList <Google.Apis.Drive.v3.Data.File> GetFileList()
        {
            // Define parameters of request.
            FilesResource.ListRequest listRequest = Instance._service.Files.List();
            listRequest.PageSize = 10;
            listRequest.Fields   = "nextPageToken, files(id, name)";

            // List files.
            IList <Google.Apis.Drive.v3.Data.File> files = listRequest.Execute()
                                                           .Files;

            //MainWindow.Console("Files:");

            return(files);
        }
Example #17
0
        /// <summary>
        /// Used to get a list of files from Google Drive that match the given query.
        /// </summary>
        /// <param name="query">The query to apply to the ListRequest. See the Drive API docs for supported syntax</param>
        /// <param name="maxFiles">The maximum number of files that can be returned from the request</param>
        /// <returns>The requested list of Files from Google Drive</returns>
        public GoogleDriveData.FileList ListFiles(string query = null, int maxFiles = 100)
        {
            // Get the Drive service
            DriveService service = GetDriveService();

            // Prepare the list request
            FilesResource.ListRequest listRequest = service.Files.List();
            listRequest.Q        = query;
            listRequest.PageSize = maxFiles;

            // Get the files from Google Drive
            GoogleDriveData::FileList fileList = listRequest.Execute();

            return(fileList);
        }
Example #18
0
        public Google.Apis.Drive.v2.Data.File GetRootFolder()
        {
            FilesResource.ListRequest searchFolderRequest = GoogleService.GetInstance().Service(this.m_User).Files.List();
            searchFolderRequest.MaxResults = 1000;
            searchFolderRequest.Q          = "mimeType='application/vnd.google-apps.folder' and trashed=false and title='" + RootFolder + "'";
            FileList rootFolderList = searchFolderRequest.Execute();
            IList <Google.Apis.Drive.v2.Data.File> rootFolderItems = rootFolderList.Items;

            if ((null != rootFolderItems) && (rootFolderItems.Count > 0))
            {
                return(rootFolderItems[0]);
            }

            return(AddFolder(RootFolder, null));
        }
Example #19
0
        public async Task GetSpreadsheetAsOdsByName(string fileName, string?outputBasePath = null)
        {
            FilesResource.ListRequest listRequest = service.Files.List();
            listRequest.PageSize = 10;
            listRequest.Fields   = "nextPageToken, files(id, name, mimeType)";
            // https://developers.google.com/drive/api/v3/search-files
            listRequest.Q = $"name = '{fileName}'";
            var files = await listRequest.ExecuteAsync();

            if (files.Files.Count != 1)
            {
                throw new Exception($"Files found invalid amount = {files.Files.Count}");
            }
            await GetSpreadsheetAsOds(files.Files.Single().Id, outputBasePath);
        }
Example #20
0
        public ItemID FindID(string name)
        {
            FilesResource.ListRequest listRequest = this.driveService.Files.List();
            listRequest.PageSize = 1;
            listRequest.Fields   = DEFAULT_FIELDS;
            listRequest.Q        = $"name = '{name}'";
            var list = listRequest.Execute();

            if (list.Files.Count == 0)
            {
                throw new NullReferenceException("No ID found for this name.");
            }

            return(new ItemID(name, list.Files[0].Id));
        }
        /// <summary>
        /// Gets the file identifier.
        /// </summary>
        /// <returns></returns>
        private static async Task <string> GetFileIdAsync()
        {
            FileList result;

            using (DriveService client = GetClient())
            {
                FilesResource.ListRequest listRequest = client.Files.List();
                listRequest.Spaces = Spaces;
                listRequest.Fields = "files(id, name)";

                result = await listRequest.ExecuteAsync().ConfigureAwait(false);
            }

            return(result.Files.SingleOrDefault(file => file.Name == SettingsFileNameWithoutExtension)?.Id);
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="driveService"></param>
        /// <param name="searchResult"></param>
        /// <param name="fileId">fileId为null时候,检索根目录</param>
        public void SearchFile(DriveService driveService, Action <FileInfo> searchResult, string fileId = null)
        {
            if (driveService == null)
            {
                return;
            }

            //搜索根目录
            if (string.IsNullOrEmpty(fileId))
            {
                // Define parameters of request.
                FilesResource.ListRequest listRequest = driveService.Files.List();
                listRequest.PageSize = 10;
                listRequest.Fields   = "nextPageToken, files(id,kind, name,size,mimeType)";
                // List files.
                IList <File> files = listRequest.Execute()
                                     .Files;
                if (files != null && files.Count > 0)
                {
                    foreach (var file in files)
                    {
                        FileInfo fileInfo = new FileInfo();
                        //用MimeType区分是文件还是文件夹
                        if (file.MimeType == "application/vnd.google-apps.folder")
                        {
                            fileInfo.IsFile = false;
                        }
                        else
                        {
                            fileInfo.IsFile = true;
                        }
                        fileInfo.FileName = file.Name;
                        fileInfo.FileId   = file.Id;
                        fileInfo.FileSize = file.Size.ToString();//之后转换
                        searchResult(fileInfo);
                    }
                }
                else
                {
                    Console.WriteLine("No files found.");
                }
            }
            //搜索文件夹
            else
            {
                ResourceFromFolder(driveService, searchResult, fileId);
            }
        }
Example #23
0
        //get all files from Google Drive.
        public List <GoogleDrive> GetDriveFiles(Guid ApplicantID)
        {
            try
            {
                using (AIMFinServDBEntities db = new AIMFinServDBEntities())
                {
                    var GetApplicantDetails     = db.tblApplicants.Where(p => p.IsActive == true && p.ApplicantID == ApplicantID).FirstOrDefault();
                    List <GoogleDrive> FileList = new List <GoogleDrive>();
                    if (GetApplicantDetails != null)
                    {
                        DriveService service = GetService();

                        // define parameters of request.
                        FilesResource.ListRequest FileListRequest = service.Files.List();

                        FileListRequest.Fields = "nextPageToken, files(id, name, size, version, createdTime)";

                        //get file list.
                        IList <Google.Apis.Drive.v3.Data.File> files = FileListRequest.Execute().Files;


                        if (files != null && files.Count > 0)
                        {
                            foreach (var file in files)
                            {
                                if (file.Size != null)
                                {
                                    GoogleDrive File = new GoogleDrive
                                    {
                                        Id         = file.Id,
                                        Name       = file.Name,
                                        Size       = file.Size,
                                        Version    = file.Version,
                                        CreateTime = file.CreatedTime
                                    };
                                    FileList.Add(File);
                                }
                            }
                        }
                    }
                    return(FileList);
                }
            }
            catch (Exception ex)
            {
                return(null);
            }
        }
        public void QuickStart()
        {
            var service = GetService();

            FilesResource.ListRequest listRequest = service.Files.List();
            listRequest.PageSize = 100;
            listRequest.Fields   = "*";

            // List files.
            IList <Google.Apis.Drive.v3.Data.File> files = listRequest.Execute().Files;
            string id = "";

            if (files != null && files.Count > 0)
            {
                foreach (var file in files)
                {
                    if (file.Name == "items")
                    {
                        id = file.Id;
                    }
                }
                foreach (var file in files)
                {
                    if (file.Parents != null)
                    {
                        if (file.Parents.Contains(id))
                        {
                            DownloadFile(service, file);
                        }
                    }
                }
                foreach (var file in files)
                {
                    if (file.Parents != null)
                    {
                        if (file.Parents.Contains(id))
                        {
                            DeleteFile(service, file.Id);
                        }
                    }
                }
            }
            else
            {
                Console.WriteLine("No files found.");
            }
            Console.WriteLine("Process complete");
        }
Example #25
0
 public static bool UpdateFileInfo()
 {
     try
     {
         FilesResource.ListRequest listRequest = GAuthenticator.Service.Files.List();
         listRequest.PageSize = 1000;
         listRequest.Fields   = "nextPageToken, files(id, name)";
         // List files.
         Files = listRequest.Execute().Files;
         return(true);
     }
     catch
     {
         return(false);
     }
 }
        public GoogleFolder GetRootFolder()
        {
            // Define parameters of request.
            FilesResource.ListRequest findFolderRequest = _service.Files.List();
            findFolderRequest.Q = string.Format("trashed=false and mimeType = 'application/vnd.google-apps.folder' and title='{0}'", _config.GoogleRootFolderName);

            // List files.
            IList <File> files = findFolderRequest.Execute().Items;

            if (files.Any())
            {
                return(new GoogleFolder(files[0].Id, files[0].Title));
            }

            return(null);
        }
Example #27
0
        public IEnumerable <File> FetchFiles(string mimeType, int pageSize = 20)
        {
            FilesResource.ListRequest listRequest = _driveService.Files.List();

            listRequest.PageToken = Pagination.NextPageToken;
            listRequest.Q         = mimeType;
            listRequest.PageSize  = pageSize;
            listRequest.Fields    = "nextPageToken, files(id, name, mimeType)";

            FileList execute = listRequest.Execute();

            Pagination.NextPageToken = execute.NextPageToken;
            IList <File> files = execute.Files;

            return(files);
        }
Example #28
0
        public List <Google.Apis.Drive.v2.Data.File> retrieveAllFiles()
        {
            UserCredential credential;

            using (var stream =
                       new FileStream("credentials.json", FileMode.Open, FileAccess.Read))
            {
                // The file token.json stores the user's access and refresh tokens, and is created
                // automatically when the authorization flow completes for the first time.
                string credPath = "token.json";
                credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
                    GoogleClientSecrets.Load(stream).Secrets,
                    Scopes,
                    "user",
                    CancellationToken.None,
                    new FileDataStore(credPath, true)).Result;
                Console.WriteLine("Credential file saved to: " + credPath);
            }

            var service = new DriveService(new BaseClientService.Initializer()
            {
                HttpClientInitializer = credential,
                ApplicationName       = ApplicationName,
            });

            ////////////////////////////////////////////////////////////////////
            List <Google.Apis.Drive.v2.Data.File> result = new List <Google.Apis.Drive.v2.Data.File>();

            FilesResource.ListRequest request = service.Files.List();

            do
            {
                try
                {
                    FileList files = request.Execute();

                    result.AddRange(files.Items);
                    request.PageToken = files.NextPageToken;
                }
                catch (Exception e)
                {
                    Console.WriteLine("An error occurred: " + e.Message);
                    request.PageToken = null;
                }
            } while (!String.IsNullOrEmpty(request.PageToken));
            return(result);
        }
        public static Task <List <Models.FileListItem> > ListFiles(string id)
        {
            return(Task.Run(delegate()
            {
                List <Models.FileListItem> items = new List <Models.FileListItem>();
                try
                {
                    string NextPageToken = null;
                    int PageNumber = 1;
                    while (!string.IsNullOrWhiteSpace(NextPageToken) || PageNumber == 1)
                    {
                        FilesResource.ListRequest listRequest = Service.Files.List();
                        listRequest.Q = string.Format("\"{0}\" in parents and trashed=false", id);
                        listRequest.Fields = "nextPageToken, files(id, name, ownedByMe, modifiedTime, size, mimeType)";

                        if (PageNumber > 1)
                        {
                            listRequest.PageToken = NextPageToken;
                        }

                        FileList fileList = listRequest.Execute();

                        IList <File> files = fileList.Files;
                        NextPageToken = fileList.NextPageToken;

                        if (files != null && files.Count > 0)
                        {
                            foreach (var file in files)
                            {
                                items.Add(Misc.FileToItem(file));
                            }
                        }
                        else
                        {
                            Console.WriteLine("No files found.");
                        }

                        PageNumber++;
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                }
                return items;
            }));
        }
Example #30
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="fileName">ex: ravi.png</param>
        /// <param name="fileType">ex: image/png</param>
        /// <param name="parentId"></param>
        /// <param name="fields"></param>
        /// <returns></returns>
        public File GetFileInFolder(string fileName, string fileType, string parentId, string fields = "nextPageToken, files(id, name, thumbnailLink)")
        {
            File file = null;

            FilesResource.ListRequest list = service.Files.List();
            list.PageSize = 1000;
            list.Fields   = fields;
            if (!string.IsNullOrEmpty(parentId))
            {
                list.Q = "mimeType = '" + fileType + "' and '" + parentId + "' in parents and trashed = false";
            }
            else
            {
                list.Q = "mimeType = '" + fileType + "'";
            }

            FileList filesFeed = list.Execute();

            //// Loop through until we arrive at an empty page
            while (filesFeed.Files != null)
            {
                // Adding each item  to the list.
                foreach (File item in filesFeed.Files)
                {
                    // Files.Add(item);
                    if (item.Name == fileName)
                    {
                        return(item);
                    }
                }

                // We will know we are on the last page when the next page token is
                // null.
                // If this is the case, break.
                if (filesFeed.NextPageToken == null)
                {
                    break;
                }

                // Prepare the next page of results
                list.PageToken = filesFeed.NextPageToken;

                // Execute and process the next page request
                filesFeed = list.Execute();
            }
            return(file);
        }
Example #31
0
        /// <summary>
        /// If you dont have a refresh token for a user. A new browser window will pop up requesting permission.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnStored_Click(object sender, EventArgs e)
        {
            tbFileCount.Text = "";
            // this is the first time the user has been in the system we dont have any auth for them.
            // Check: new SavedDataStore();
            UserCredential StoredCredential;

            using (var stream = new FileStream("client_secrets.json", FileMode.Open,
                                               FileAccess.Read))
            {
                GoogleWebAuthorizationBroker.Folder = "Tasks.Auth.Store";
                StoredCredential = GoogleWebAuthorizationBroker.AuthorizeAsync(
                    GoogleClientSecrets.Load(stream).Secrets,
                    new[] { DriveService.Scope.Drive,
                            DriveService.Scope.DriveFile },
                    "user",
                    CancellationToken.None,
                    new SavedDataStore()).Result;
            }

            // saving the The inital data. You will probably want to save it to the database or something.
            // Note: The only thing you need to truly save is the refresh token.
            tbAccessToken.Text       = StoredCredential.Token.AccessToken;
            tbRefreshToken.Text      = StoredCredential.Token.RefreshToken;
            tbTokenType.Text         = StoredCredential.Token.TokenType;
            tbExpiresIn.Text         = StoredCredential.Token.ExpiresInSeconds.ToString();
            tbIssued.Text            = StoredCredential.Token.Issued.ToString();
            textBox1.Visible         = false;
            textBox4.Visible         = false;
            label3.Visible           = false;
            label7.Visible           = false;
            btnLoadSavedData.Enabled = true;


            // This is how we connect to google drive.  Only puting this here so that you can see it is able to access
            // the google drive api.
            DriveService service = new DriveService(new BaseClientService.Initializer()
            {
                HttpClientInitializer = StoredCredential,
                ApplicationName       = "Drive API Sample",
            });

            FilesResource.ListRequest request = service.Files.List();
            FileList files = request.Execute();

            tbFileCount.Text = files.Items.Count().ToString();
        }
Example #32
0
        public override async Task AddFiles(string id)
        {
            FilesResource.ListRequest list = new FilesResource.ListRequest(service);
            string query = "'" + id + "' in parents";
            GoogleFiles = new List<GoogleFile>();
            try
            {
                list.MaxResults = 1000;
                if (query != null)
                {
                    list.Q = query;
                }
                FileList filesFeed = list.Execute();

                while (filesFeed.Items != null)
                {
                    // Adding each item  to the list.
                    foreach (var item in filesFeed.Items)
                    {
                        GoogleFile gfile = new GoogleFile(service);
                        gfile.Item = item;
                        GoogleFiles.Add(gfile);
                    }

                    // We will know we are on the last page when the next page token is
                    // null.
                    // If this is the case, break.
                    if (filesFeed.NextPageToken == null)
                    {
                        break;
                    }
                    list.PageToken = filesFeed.NextPageToken;
                    filesFeed = list.Execute();
                }
            }
            catch
            {
                //return null;
            }
        }