Beispiel #1
0
        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);
            }
        }