Example #1
0
        void SetIcons(List <AbstractFile> list, ListView FileList)
        {
            imageList1.Images.Clear();
            imageList1.Images.Add(Properties.Resources.icons8_folder_24);

            foreach (var item in list.Where(i => i.Type() == FileDir.Folder))
            {
                ConcreteFolder fle = (ConcreteFolder)item;
                FileList.Items[list.IndexOf(item)].ImageIndex = imageList1.Images.Count - 1;
            }

            if (FileList.Items[0].Name == "..")
            {
                imageList1.Images.Add(Properties.Resources.icons8_opened_folder_24);
                FileList.Items[0].ImageIndex = imageList1.Images.Count - 1;
            }

            foreach (var item in list.Where(i => i.Type() == FileDir.File))
            {
                ConcreteFile file = (ConcreteFile)item;
                imageList1.Images.Add(Etier.IconHelper.IconReader.GetFileIcon(Path.GetExtension(file.FilePath),
                                                                              IconReader.IconSize.Large, false));
                FileList.Items[list.IndexOf(item)].ImageIndex = imageList1.Images.Count - 1;
            }
        }
        public async Task Rename(string path, AbstractFile file)
        {
            using (NewFolderForm CrtFldrFrm = new NewFolderForm())
            {
                if (file.Type() == FileDir.File)
                {
                    ConcreteFile CurrentFile = (ConcreteFile)file;
                    CrtFldrFrm.SetItemName(CurrentFile.FileName);
                    CrtFldrFrm.ShowDialog();

                    if (CrtFldrFrm.DialogResult == DialogResult.OK)
                    {
                        await client.Files.MoveAsync(new RelocationArg(CurrentFile.FilePath, path + "/" + CrtFldrFrm.FolderName));
                    }
                }
                if (file.Type() == FileDir.Folder)
                {
                    ConcreteFolder CurrentFile = (ConcreteFolder)file;
                    CrtFldrFrm.SetItemName(CurrentFile.FolderName);
                    CrtFldrFrm.ShowDialog();

                    if (CrtFldrFrm.DialogResult == DialogResult.OK)
                    {
                        await client.Files.MoveAsync(new RelocationArg(CurrentFile.FolderPath, path + "/" + CrtFldrFrm.FolderName));
                    }
                }
            }
        }
        public async Task InitializeDelete(Form OwnerForm, List <AbstractFile> DeleteList)
        {
            int          count = DeleteList.Count, enumerator = 0;
            CopyProgress window = new CopyProgress("0", count.ToString());

            window.Owner = OwnerForm;
            window.Show();

            foreach (AbstractFile file in DeleteList)
            {
                if (file.Type() == FileDir.File)
                {
                    ConcreteFile FileToDelete = (ConcreteFile)file;
                    await client.Files.DeleteAsync(new DeleteArg(FileToDelete.FilePath));

                    enumerator++;
                    window.RefreshData(enumerator, count);
                }

                if (file.Type() == FileDir.Folder)
                {
                    ConcreteFolder FolderToDelete = (ConcreteFolder)file;
                    await client.Files.DeleteAsync(new DeleteArg(FolderToDelete.FolderPath));

                    enumerator++;
                    window.RefreshData(enumerator, count);
                }
            }
            window.Close();
        }
Example #4
0
        public AbstractFile GetNew(FileDir type)
        {
            AbstractFile Result = null;

            switch (type)
            {
            case FileDir.File: Result = new ConcreteFile(); break;

            case FileDir.Folder: Result = new ConcreteFolder(); break;
            }
            return(Result);
        }
Example #5
0
        private async void GetSharedLinkClipboardContext_Click(object sender, EventArgs e)
        {
            if (StorageFilesList.SelectedIndices.Count > 0 && StorageFilesList.SelectedIndices.Count < 2)
            {
                if (FilesAndFolders[StorageFilesList.SelectedIndices[0]].Type() == FileDir.File)
                {
                    ConcreteFile file = (ConcreteFile)FilesAndFolders[StorageFilesList.SelectedIndices[0]];

                    string str = await DropboxClient.GetSharedLink(file.FilePath);

                    Clipboard.SetText(str);
                }
            }
        }
Example #6
0
 void RefreshContent(List <AbstractFile> list, ListView FileList)
 {
     try
     {
         for (int i = 0; i < list.Count; i++)
         {
             if (list[i].Type() == FileDir.File)
             {
                 ConcreteFile file = (ConcreteFile)list[i];
                 FileList.Items[i].SubItems[1].Text = file.FileSize.ToString();
             }
         }
     }
     catch (ArgumentOutOfRangeException) { }
 }
Example #7
0
        List <AbstractFile> GetFileSystemList(string FsPath)
        {
            List <AbstractFile> FilesList = new List <AbstractFile>();

            //FileSystemFilesAndFolders.Clear();
            string[] files     = Directory.GetFiles(FsPath);
            string[] directory = Directory.GetDirectories(FsPath);
            int      index     = 0;

            if (!String.IsNullOrEmpty(FsPath) && FsPath.Length > 3)
            {
                FilesList.Add(new ConcreteFolder());
                ConcreteFolder UpFolder = (ConcreteFolder)FilesList[0];
                UpFolder.FolderName = "..";
                UpFolder.FolderPath = FsPath.Remove(FsPath.LastIndexOf(@"\"), FsPath.Length - FsPath.LastIndexOf(@"\"));
                FilesList[0]        = UpFolder;
                index = 1;
            }

            foreach (string obj in directory)
            {
                if (Directory.Exists(obj))
                {
                    FilesList.Add(Creator.GetNew(FileDir.Folder));
                    ConcreteFolder fld = (ConcreteFolder)FilesList[index];
                    fld.FolderName   = obj.Remove(0, obj.LastIndexOf('\\') + 1);
                    fld.FolderPath   = Path.GetFullPath(obj);
                    FilesList[index] = fld;
                    index++;
                }
            }

            foreach (string obj in files)
            {
                if (File.Exists(obj))
                {
                    FilesList.Add(Creator.GetNew(FileDir.File));
                    ConcreteFile fle = (ConcreteFile)FilesList[index];
                    fle.FileName     = Path.GetFileName(obj);
                    fle.FilePath     = Path.GetFullPath(obj);
                    fle.FileSize     = new FileInfo(obj).Length / 1024;
                    FilesList[index] = fle;
                    index++;
                }
            }
            index = 0;
            return(FilesList);
        }
Example #8
0
        private void InfoContext_Click(object sender, EventArgs e)
        {
            if (StorageFilesList.SelectedIndices.Count > 0 && StorageFilesList.SelectedIndices.Count < 2)
            {
                if (FilesAndFolders[StorageFilesList.SelectedIndices[0]].Type() == FileDir.File)
                {
                    ConcreteFile file = (ConcreteFile)FilesAndFolders[StorageFilesList.SelectedIndices[0]];
                    DropboxClient.ShowMetadata(file.FilePath);
                }

                if (FilesAndFolders[StorageFilesList.SelectedIndices[0]].Type() == FileDir.Folder)
                {
                    ConcreteFolder folder = (ConcreteFolder)FilesAndFolders[StorageFilesList.SelectedIndices[0]];
                    DropboxClient.ShowMetadata(folder.FolderPath);
                }
            }
        }
Example #9
0
        private async void RenameContext_Click(object sender, EventArgs e)
        {
            if (StorageFilesList.SelectedIndices.Count > 0 && StorageFilesList.SelectedIndices.Count < 2)
            {
                if (FilesAndFolders[StorageFilesList.SelectedIndices[0]].Type() == FileDir.File)
                {
                    ConcreteFile file = (ConcreteFile)FilesAndFolders[StorageFilesList.SelectedIndices[0]];
                    await DropboxClient.Rename(CurrentPath, file);
                }

                if (FilesAndFolders[StorageFilesList.SelectedIndices[0]].Type() == FileDir.Folder)
                {
                    ConcreteFolder folder = (ConcreteFolder)FilesAndFolders[StorageFilesList.SelectedIndices[0]];
                    await DropboxClient.Rename(CurrentPath, folder);
                }
                await ChainToShow(CurrentPath);
            }
        }
Example #10
0
        private async void StorageFilesList_DragDrop(object sender, DragEventArgs ev)
        {
            string[] files = (string[])ev.Data.GetData(DataFormats.FileDrop);
            UploadList.Clear();

            foreach (string file in files)
            {
                ConcreteFile concfile = new ConcreteFile
                {
                    FilePath = Path.GetFullPath(file),
                    FileName = Path.GetFileName(file)
                };
                UploadList.Add(concfile);
            }
            await DropboxClient.InitializeUpload(this, UploadList, CurrentPath);

            await ChainToShow(CurrentPath);
        }
        public async Task <List <AbstractFile> > GetList(string path)
        {
            if (String.IsNullOrEmpty(path))
            {
                path = string.Empty;
            }

            List <AbstractFile> FilesList = new List <AbstractFile>();
            ListFolderResult    list      = await client.Files.ListFolderAsync(path);

            int index = 0;

            if (!String.IsNullOrEmpty(path) && path != "/")
            {
                FilesList.Add(Creator.GetNew(FileDir.Folder));
                ConcreteFolder UpFolder = (ConcreteFolder)FilesList[0];
                UpFolder.FolderName = "..";
                UpFolder.FolderPath = path.Remove(path.LastIndexOf(@"/"), path.Length - path.LastIndexOf(@"/"));
                FilesList[0]        = UpFolder;
                index = 1;
            }

            foreach (var item in list.Entries.Where(i => i.IsFolder))
            {
                FilesList.Add(Creator.GetNew(FileDir.Folder));
                ConcreteFolder fle = (ConcreteFolder)FilesList[index];
                fle.FolderName   = item.Name;
                fle.FolderPath   = item.PathLower;
                FilesList[index] = fle;
                index++;
            }

            foreach (var item in list.Entries.Where(i => i.IsFile))
            {
                FilesList.Add(Creator.GetNew(FileDir.File));
                ConcreteFile fle = (ConcreteFile)FilesList[index];
                fle.FileName     = item.Name;
                fle.FilePath     = item.PathLower;
                FilesList[index] = fle;
                index++;
            }
            index = 0;
            return(FilesList);
        }
Example #12
0
        async private void DownloadItemAs_Click(object sender, EventArgs e)
        {
            if (StorageFilesList.SelectedIndices.Count > 0)
            {
                DownloadList.Clear();
                foreach (int index in StorageFilesList.SelectedIndices)
                {
                    if (FilesAndFolders[index].Type() == FileDir.File)
                    {
                        DownloadList.Add(FilesAndFolders[index]);
                    }
                }

                if (StorageFilesList.SelectedIndices.Count < 2)
                {
                    SaveFileDialog SaveFile = new SaveFileDialog();
                    ConcreteFile   FileInTheListToDownload = (ConcreteFile)FilesAndFolders[StorageFilesList.SelectedIndices[0]];
                    SaveFile.FileName = FileInTheListToDownload.FileName;
                    DialogResult res = SaveFile.ShowDialog();

                    if (res == DialogResult.OK)
                    {
                        await DropboxClient.InitializeDownload(this, SaveFile.FileName, DownloadList);
                    }
                }
                else
                {
                    FolderBrowserDialog SaveFileFolder          = new FolderBrowserDialog();
                    ConcreteFile        FileInTheListToDownload = (ConcreteFile)FilesAndFolders[StorageFilesList.SelectedIndices[0]];
                    DialogResult        res = SaveFileFolder.ShowDialog();

                    if (res == DialogResult.OK)
                    {
                        await DropboxClient.InitializeDownload(this, SaveFileFolder.SelectedPath, DownloadList);
                    }
                }
            }
        }
        public async Task <List <AbstractFile> > GetMetadata(List <AbstractFile> List)
        {
            List <AbstractFile> Result = List;

            /*"Оператор foreach используется для итерации коллекции с целью получения необходимой информации,
             * однако его не следует использовать для добавления или удаления элементов исходной коллекции
             * во избежание непредвиденных побочных эффектов.
             * Если нужно добавить или удалить элементы исходной коллекции, следует использовать цикл for."*/
            for (int i = 0; i < Result.Count; i++)
            {
                if (Result[i].Type() == FileDir.File)
                {
                    ConcreteFile file = (ConcreteFile)Result[i];
                    Metadata     meta = await client.Files.GetMetadataAsync(file.FilePath);

                    file.FileSize = meta.AsFile.Size;
                    file.DateFileClientModified = meta.AsFile.ClientModified;
                    file.DateFileServerModified = meta.AsFile.ServerModified;
                    Result[i] = file;
                }
            }
            return(Result);
        }
Example #14
0
        void DisplayContent(List <AbstractFile> list, ListView FileList)
        {
            FileList.Clear();
            FileList.Columns.Add("Name");
            FileList.Columns[0].Width = 300;
            FileList.Columns.Add("Size");

            foreach (var item in list.Where(i => i.Type() == FileDir.Folder))
            {
                ListViewItem   lvi = new ListViewItem();
                ConcreteFolder fle = (ConcreteFolder)item;
                lvi.Text = fle.FolderName;
                FileList.Items.Add(lvi);
            }

            foreach (var item in list.Where(i => i.Type() == FileDir.File))
            {
                ListViewItem lvi = new ListViewItem();
                ConcreteFile fle = (ConcreteFile)item;
                lvi.Text = fle.FileName;
                lvi.SubItems.Add(fle.FileSize.ToString() + " Bytes");
                FileList.Items.Add(lvi);
            }
        }