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(); }
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); }
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); } } }
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) { } }
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); }
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); } } }
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); } }
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); }
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); }
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); } }