示例#1
0
        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;
            //}
        }
示例#2
0
        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("没有压缩文件!");
            }
        }