/// <summary> /// 右键菜单创建文件事件 /// </summary> private void item_createFile_Click(object sender, EventArgs e) { SelectedItemsStatus status = GetStatusOfSelectedItemsInListView(); string newFile = GetSelectedDirPathInDirTree() + "NewFile.txt"; UserControl fileEditer = new FileEditerControl(_hostService, _shellData, newFile, false); _hostService.CreateNewTabPage("FileEdit", fileEditer); }
/// <summary> /// 右键菜单修改时间事件 /// </summary> private void item_modifyTime_Click(object sender, EventArgs e) { SelectedItemsStatus status = GetStatusOfSelectedItemsInListView(); if (status != SelectedItemsStatus.NoSelected) { listView_File.EditSubItem(listView_File.SelectedItems[0], 1, "modifyTime", false); } }
/// <summary> /// 右键菜单创建文件夹事件 /// </summary> private void item_createDir_Click(object sender, EventArgs e) { SelectedItemsStatus status = GetStatusOfSelectedItemsInListView(); string time = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); string[] subItems = new string[] { "NewFolder", time, "0", "0777" }; ListViewItem item = new ListViewItem(subItems, 1); listView_File.Items.Add(item); listView_File.EditSubItem(item, 0, "createDir", true); }
/// <summary> /// 右键菜单编辑事件 /// </summary> private void item_edit_Click(object sender, EventArgs e) { SelectedItemsStatus status = GetStatusOfSelectedItemsInListView(); if (status == SelectedItemsStatus.IsFile) { string webFile = GetSelectedPathInListView(false); UserControl fileEditer = new FileEditerControl(_hostService, _shellData, webFile, true); _hostService.CreateNewTabPage("FileEdit", fileEditer); } }
/// <summary> /// 获取listview中选中项状态 /// </summary> /// <returns></returns> private SelectedItemsStatus GetStatusOfSelectedItemsInListView() { if (listView_File.SelectedItems.Count > 0) { SelectedItemsStatus tmp = (SelectedItemsStatus)listView_File.SelectedItems[0].Tag; return(tmp); } else { return(SelectedItemsStatus.NoSelected); } }
/// <summary> /// 右键菜单复制事件 /// </summary> private void item_copy_Click(object sender, EventArgs e) { SelectedItemsStatus status = GetStatusOfSelectedItemsInListView(); if (status == SelectedItemsStatus.IsDir) { _sourceCopyPath = GetSelectedPathInListView(true); } else if (status == SelectedItemsStatus.IsFile) { _sourceCopyPath = GetSelectedPathInListView(false); } _sourceCopyName = listView_File.SelectedItems[0].Text; }
/// <summary> /// 右键菜单打开事件 /// </summary> private void rightMenu_FileManager_Opening(object sender, CancelEventArgs e) { SelectedItemsStatus status = GetStatusOfSelectedItemsInListView(); if (status == SelectedItemsStatus.NoSelected) { rightMenu_FileManager.Items["item_refresh"].Visible = true; rightMenu_FileManager.Items["item_upload"].Visible = true; rightMenu_FileManager.Items["item_download"].Visible = false; rightMenu_FileManager.Items["item_downloadToServer"].Visible = true; rightMenu_FileManager.Items["item_del"].Visible = false; rightMenu_FileManager.Items["item_edit"].Visible = false; rightMenu_FileManager.Items["item_copy"].Visible = false; rightMenu_FileManager.Items["item_paste"].Visible = true; rightMenu_FileManager.Items["item_paste"].Enabled = string.IsNullOrEmpty(_sourceCopyPath) ? false : true; rightMenu_FileManager.Items["item_rename"].Visible = false; rightMenu_FileManager.Items["item_modifyTime"].Visible = false; rightMenu_FileManager.Items["item_add"].Visible = true; } else if (status == SelectedItemsStatus.IsDir) { rightMenu_FileManager.Items["item_refresh"].Visible = true; rightMenu_FileManager.Items["item_upload"].Visible = true; rightMenu_FileManager.Items["item_download"].Visible = false; rightMenu_FileManager.Items["item_downloadToServer"].Visible = true; rightMenu_FileManager.Items["item_del"].Visible = true; rightMenu_FileManager.Items["item_edit"].Visible = false; rightMenu_FileManager.Items["item_copy"].Visible = true; rightMenu_FileManager.Items["item_paste"].Visible = false; rightMenu_FileManager.Items["item_rename"].Visible = true; rightMenu_FileManager.Items["item_modifyTime"].Visible = true; rightMenu_FileManager.Items["item_add"].Visible = true; } else if (status == SelectedItemsStatus.IsFile) { rightMenu_FileManager.Items["item_refresh"].Visible = true; rightMenu_FileManager.Items["item_upload"].Visible = true; rightMenu_FileManager.Items["item_download"].Visible = true; rightMenu_FileManager.Items["item_downloadToServer"].Visible = true; rightMenu_FileManager.Items["item_del"].Visible = true; rightMenu_FileManager.Items["item_edit"].Visible = true; rightMenu_FileManager.Items["item_copy"].Visible = true; rightMenu_FileManager.Items["item_paste"].Visible = false; rightMenu_FileManager.Items["item_rename"].Visible = true; rightMenu_FileManager.Items["item_modifyTime"].Visible = true; rightMenu_FileManager.Items["item_add"].Visible = true; } }
/// <summary> /// 右键菜单粘贴事件 /// </summary> private void item_paste_Click(object sender, EventArgs e) { SelectedItemsStatus status = GetStatusOfSelectedItemsInListView(); if (status == SelectedItemsStatus.NoSelected) { if (_sourceCopyPath != string.Empty) { string targetCopyDir = GetSelectedDirPathInDirTree(); _fileManager.CopyFileOrDir(_sourceCopyPath, targetCopyDir + _sourceCopyName); //清空复制记录 _sourceCopyPath = string.Empty; _sourceCopyName = string.Empty; } } }
/// <summary> /// 右键菜单下载事件 /// </summary> private void item_download_Click(object sender, EventArgs e) { SelectedItemsStatus status = GetStatusOfSelectedItemsInListView(); if (status == SelectedItemsStatus.IsFile) { string webFile = GetSelectedPathInListView(false); string name = Path.GetFileName(webFile); SaveFileDialog saveFileDialog = new SaveFileDialog(); saveFileDialog.Title = "将文件另存为"; saveFileDialog.FileName = name; if (saveFileDialog.ShowDialog() == DialogResult.OK) { DownloadFile(webFile, saveFileDialog.FileName); } } }
/// <summary> /// 文件列表编辑完成事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void listView_File_EditSubItemCompleted(object sender, ListViewPlus.EditSubItemEventArgs e) { switch (e.UserSate) { case "rename": ((ListView)sender).Items[e.ItemRowIndex].Name = e.Label; //发送重命名请求 //oldFileName,newFileName //为了安全起见,这里使用绝对路径 _selectDirInTree = GetSelectedDirPathInDirTree(); string oldFileName = e.OldLabel; string newFileName = e.Label; string oldFileNameFullPath = Path.Combine(_selectDirInTree, oldFileName); string newFileNameFullPath = Path.Combine(_selectDirInTree, newFileName); _fileManager.RenameFileOrDir(oldFileNameFullPath, newFileNameFullPath); break; case "modifyTime": SelectedItemsStatus status = (SelectedItemsStatus)(((ListView)sender).Items[e.ItemRowIndex]).Tag; if (status == SelectedItemsStatus.IsDir) { string file = GetSelectedPathInListView(true); //修改时间 _fileManager.ModifyFileOrDirTime(file, e.Label); } else if (status == SelectedItemsStatus.IsFile) { string file = GetSelectedPathInListView(false); //修改时间 _fileManager.ModifyFileOrDirTime(file, e.Label); } break; case "createDir": ////打开设置界面 _selectDirInTree = GetSelectedDirPathInDirTree(); string dirName = e.Label; string dirFullPath = Path.Combine(_selectDirInTree, dirName); _fileManager.CreateDir(dirFullPath); break; default: break; } }
/// <summary> /// 右键菜单下载文件到远程服务器 /// </summary> private void item_downloadToServer_Click(object sender, EventArgs e) { //FormWget SelectedItemsStatus status = GetStatusOfSelectedItemsInListView(); //打开设置界面 _selectDirInTree = GetSelectedDirPathInDirTree(); FormWget formWget = new FormWget(_selectDirInTree); formWget.ShowDialog(); if (formWget.DialogResult == DialogResult.Yes) { string urlPath = formWget.UrlPath; string savePath = formWget.SavePath; formWget.Close(); _fileManager.Wget(urlPath, savePath); } }
/// <summary> /// 右键菜单删除事件 /// </summary> private void item_del_Click(object sender, EventArgs e) { DialogResult result = MessageBox.Show("是否继续删除?", "警告", MessageBoxButtons.YesNo, MessageBoxIcon.Warning); if (result == DialogResult.Yes) { SelectedItemsStatus status = GetStatusOfSelectedItemsInListView(); if (status == SelectedItemsStatus.IsDir) { string webDir = GetSelectedPathInListView(true); _fileManager.DeleteFileOrDir(webDir); } else if (status == SelectedItemsStatus.IsFile) { string webFile = GetSelectedPathInListView(false); _fileManager.DeleteFileOrDir(webFile); } } }
/// <summary> /// 文件列表双击事件 /// </summary> private void listView_File_DoubleClick(object sender, EventArgs e) { SelectedItemsStatus status = GetStatusOfSelectedItemsInListView(); if (status == SelectedItemsStatus.IsDir) { string webDir = GetSelectedPathInListView(true); if (webDir != "") { textBox_url.Text = webDir; try { RefreshAllFiles(webDir); AddPathInDirTree(webDir); } catch (Exception ex) { MessageBox.Show(ex.Message); } } } }
private SelectedItemsStatus GetFileTypeInListView(ListViewItem item) { SelectedItemsStatus type = (SelectedItemsStatus)item.Tag; return(type); }