Shell32.ShellClass 自动解压出对话框,该如何解决
Shell32.ShellClass 自动解压出对话框
我做了个解压缩zip的程序,可现在这个,有个问题,
如果根目录下,有这个压缩文件里的文件,就提示是否覆盖,取消的对话框,,我现在不想让他出现,无论文件存在不存在,都直接覆盖,该怎么改?
我看改(items, 8);的数,我改成20,128,256,什么的都不管用呀?
改怎么做啊?
Shell32.ShellClass sc = new Shell32.ShellClass();
Shell32.Folder SrcFolder = sc.NameSpace(Application.StartupPath + "\\AutoUpdater\\1.zip");
Shell32.Folder DestFolder = sc.NameSpace(Application.StartupPath);
Shell32.FolderItems items = SrcFolder.Items();
DestFolder.CopyHere(items, 8);
------解决方案--------------------
我做了个解压缩zip的程序,可现在这个,有个问题,
如果根目录下,有这个压缩文件里的文件,就提示是否覆盖,取消的对话框,,我现在不想让他出现,无论文件存在不存在,都直接覆盖,该怎么改?
我看改(items, 8);的数,我改成20,128,256,什么的都不管用呀?
改怎么做啊?
Shell32.ShellClass sc = new Shell32.ShellClass();
Shell32.Folder SrcFolder = sc.NameSpace(Application.StartupPath + "\\AutoUpdater\\1.zip");
Shell32.Folder DestFolder = sc.NameSpace(Application.StartupPath);
Shell32.FolderItems items = SrcFolder.Items();
DestFolder.CopyHere(items, 8);
------解决方案--------------------
- C# code
直接调用WINR public void RARsave(string patch,string rarPatch,string rarName) { String the_rar; RegistryKey the_Reg; Object the_Obj; String the_Info; ProcessStartInfo the_StartInfo; Process the_Process; try { the_Reg = Registry.ClassesRoot.OpenSubKey(@"ApplicationsWinRAR.exeShellOpenCommand"); the_Obj = the_Reg.GetValue(""); the_rar = the_Obj.ToString(); the_Reg.Close(); the_rar = the_rar.Substring(1, the_rar.Length - 7); Directory.CreateDirectory(patch); //命令参数 //the_Info = " a " + rarName + " " + @"C:Test?70821.txt"; //文件压缩 the_Info = " a " + rarName + " " + patch + " -r"; ; the_StartInfo = new ProcessStartInfo(); the_StartInfo.FileName = the_rar; the_StartInfo.Arguments = the_Info; the_StartInfo.WindowStyle = ProcessWindowStyle.Hidden; //打包文件存放目录 the_StartInfo.WorkingDirectory = rarPatch; the_Process = new Process(); the_Process.StartInfo = the_StartInfo; the_Process.Start(); the_Process.WaitForExit(); the_Process.Close(); } catch (Exception ex) { throw ex; } } public string unRAR(string unRarPatch,string rarPatch,string rarName) { String the_rar; RegistryKey the_Reg; Object the_Obj; String the_Info; ProcessStartInfo the_StartInfo; Process the_Process; try { the_Reg = Registry.ClassesRoot.OpenSubKey(@"ApplicationsWinRAR.exeShellOpenCommand"); the_Obj = the_Reg.GetValue(""); the_rar = the_Obj.ToString(); the_Reg.Close(); the_rar = the_rar.Substring(1, the_rar.Length - 7); Directory.CreateDirectory(Server.MapPath(unRarPatch)); the_Info = "e " + rarName + " " + Server.MapPath(unRarPatch) + " -y"; the_StartInfo = new ProcessStartInfo(); the_StartInfo.FileName = the_rar; the_StartInfo.Arguments = the_Info; the_StartInfo.WindowStyle = ProcessWindowStyle.Hidden; the_StartInfo.WorkingDirectory = Server.MapPath(rarPatch);//获取压缩包路径 the_Process = new Process(); the_Process.StartInfo = the_StartInfo; the_Process.Start(); the_Process.WaitForExit(); the_Process.Close(); } catch (Exception ex) { throw ex; } return Server.MapPath(unRarPatch); }