Пример #1
0
        public Google.Apis.Drive.v2.Data.FileList ListFiles()
        {
            if (!serviceStarted || driverservice == null)
            {
                return(null);
            }
            var listrequest = driverservice.Files.List();

            Google.Apis.Drive.v2.Data.FileList list = listrequest.Execute();
            return(list);
        }
Пример #2
0
        private bool CompareFolder(Google.Apis.Drive.v2.Data.FileList remotefilelist, Google.Apis.Drive.v2.Data.File remotefolder, FolderNode folderNode)
        {
            List <string> paths = new List <string>();

            if (folderNode.IsRoot)
            {
                return(false);
            }

            if (remotefolder.Title == folderNode.Title)
            {
                if (remotefolder.Parents.Count < 1)
                {
                    if (folderNode.Parent.IsRoot == true)
                    {
                        return(true);
                    }
                }
                else
                {
                    foreach (Google.Apis.Drive.v2.Data.ParentReference parent in remotefolder.Parents)
                    {
                        if (parent.IsRoot == true)
                        {
                            if (folderNode.Parent.IsRoot == true)
                            {
                                return(true);
                            }
                        }
                        else
                        {
                            foreach (var entry in remotefilelist.Items)
                            {
                                if (entry.Id == parent.Id)
                                {
                                    if (CompareFolder(remotefilelist, entry, folderNode.Parent))
                                    {
                                        return(true);
                                    }
                                }
                            }
                        }
                    }
                }
            }
            return(false);
        }
Пример #3
0
        private List <string> RetrievePath(Google.Apis.Drive.v2.Data.FileList remotefilelist, Google.Apis.Drive.v2.Data.File file)
        {
            List <string> paths = new List <string>();

            if (file.Parents.Count < 1)
            {
                paths.Add(Path.Combine(savePath, file.Title));
            }
            else
            {
                foreach (Google.Apis.Drive.v2.Data.ParentReference parent in file.Parents)
                {
                    if (parent == null || parent.IsRoot == true)
                    {
                        paths.Add(Path.Combine(savePath, file.Title));
                    }
                    else
                    {
                        foreach (var entry in remotefilelist.Items)
                        {
                            if (entry.Id == parent.Id)
                            {
                                List <string> subpaths = RetrievePath(remotefilelist, entry);

                                foreach (var subpath in subpaths)
                                {
                                    if (!Directory.Exists(subpath))
                                    {
                                        Directory.CreateDirectory(subpath);
                                    }
                                    paths.Add(Path.Combine(subpath, file.Title));
                                }
                            }
                        }
                    }
                }
            }
            return(paths);
        }