private void OnSaveFileAsBtnClick(object sender, EventArgs e) { FolderTreeNode folderNode = (FolderTreeNode)fsFolderTree.SelectedNode; if (folderNode == null) { MessageBox.Show("Please select a file to save"); return; } if (fileSaveTargetDir == null || !Directory.Exists(fileSaveTargetDir)) { if (!string.IsNullOrEmpty(virtPackage.openedFile)) { fileSaveTargetDir = Path.GetDirectoryName(virtPackage.openedFile); } else { fileSaveTargetDir = ""; } } ListView.SelectedListViewItemCollection fileItems = fsFilesList.SelectedItems; if (fileItems.Count == 0) // In this case, folderNode is always selected too { if (TreeHelper.InputFolderBrowserDialog("Select the destination path on your hard disk to save the files.", ref fileSaveTargetDir) != DialogResult.OK) { return; } SaveFolderContent(folderNode, fileSaveTargetDir); //MessageBox.Show("Please select a file, not a folder"); return; } if (TreeHelper.InputFolderBrowserDialog("Select the destination path on your hard disk to save the file.", ref fileSaveTargetDir) != DialogResult.OK) { return; } // Save files if (folderNode.childFiles.Count == 0) { return; // Should never happen } List <FileData> files = getSelectedFiles(); foreach (FileData item in files) { SaveFile(item, fileSaveTargetDir); } }