private void DelAction() { if (string.IsNullOrWhiteSpace(_delStr)) { return; } //try //{ foreach (var item in FileTreeList) { var fileOrDir = FileHelper.FindSameDirectoryOrFile(_delStr, item.Nodes); if (fileOrDir != null) { if (fileOrDir.Type == ResourcesType.Directory) { FileHelper.DeleteFolder(fileOrDir.NodeName); } else { File.Delete(fileOrDir.NodeName); } } } foreach (var item in FileTreeList) { // 压缩 RarClass.Rar(item.CurrNodeName, FilePath); // 删除文件 FileHelper.DeleteFolder(item.CurrNodeName); //if (!isHasParentDirectoryName) // 解压出来又一级目录 //{ // // 压缩 // RarClass.Rar(folder, item); //} //else // 直接解压,没有目录 //{ // var dir = Path.GetDirectoryName(file.FullName); // var d = new DirectoryInfo(dir); // var fsinfos = d.GetFileSystemInfos(); // var path = Path.GetDirectoryName(file.FullName); // // 压缩 // foreach (var fileInfo in fsinfos) // { // RarClass.Rar(fileInfo.FullName, path); // } //} } MessageBox.Show("操作成功!"); //} //catch (Exception e) //{ // MessageBox.Show("操作失败!"); // throw; //} }
private void FileUnZipOrRar(IEnumerable <string> fileNames) { var treeModelTemp = new ObservableCollection <TreeModel>(); foreach (var item in fileNames) { DirectoryInfo root = new DirectoryInfo(item); FileInfo[] files = root.GetFiles(); foreach (var file in files) { // 新建一个文件夹 var folderStr = FileHelper.CrateFolder(file.FullName); _newFolderStr = folderStr; // 解压文件 RarClass.UnRar(file.FullName, folderStr); // 删除原来的文件 File.Delete(file.FullName); bool isHasParentDirectoryName = false; // 获取:获取解压后的文件名称 var folder = StringOperation.FilePthAndName(file.FullName, out isHasParentDirectoryName); // 创建一级树 CreateOneLevelTree(folderStr, file.Name); // 创建文件树 FileHelper.GetDirectory(FileTree.Nodes, folder); // 创建树集合 treeModelTemp.Add(FileTree); } } if (treeModelTemp.Count > 0) { FileTreeList = new ObservableCollection <TreeModel>(treeModelTemp); PanelVisibility = Visibility.Visible; } else { MessageBox.Show("没有压缩文件!"); } }