示例#1
0
        public static void CleanTemp()
        {
            ProcessManager.SyncCMD("taskkill /f /IM imagex_x86.exe");
            ProcessManager.SyncCMD("taskkill /f /IM imagex_x64.exe");

            //KILL.Start();
            //KILL.WaitForExit();

            if (System.IO.Directory.Exists("V:\\"))
            {
                DetachVHDExtra();
            }
            if (System.IO.Directory.Exists("V:\\"))
            {
                DetachVHDExtra();
                //MsgManager.getResString("Msg_LetterV")
                //盘符V不能被占用!
            }
            if (System.IO.Directory.Exists("V:\\"))
            {
                ErrorMsg er = new ErrorMsg(MsgManager.GetResString("Msg_LetterV", MsgManager.ci));
                er.ShowDialog();
            }
            //if (useiso) { ProcessManager.SyncCMD("\""+Application.StartupPath + "\\files\\" + "\\isocmd.exe\" -eject 0: "); }
            try
            {
                //File.Delete ()

                FileOperation.DeleteFile(WTGModel.diskpartScriptPath + "\\create.txt");
                FileOperation.DeleteFile(WTGModel.diskpartScriptPath + "\\removex.txt");
                FileOperation.DeleteFile(WTGModel.diskpartScriptPath + "\\detach.txt");
                FileOperation.DeleteFile(WTGModel.diskpartScriptPath + "\\uefi.txt");
                FileOperation.DeleteFile(WTGModel.diskpartScriptPath + "\\uefimbr.txt");
                FileOperation.DeleteFile(WTGModel.diskpartScriptPath + "\\dp.txt");
                FileOperation.DeleteFile(WTGModel.diskpartScriptPath + "\\attach.txt");
                FileOperation.DeleteFile(Environment.GetEnvironmentVariable("TEMP") + "\\win8.vhd");
                FileOperation.DeleteFile(Environment.GetEnvironmentVariable("TEMP") + "\\win8.vhdx");
                FileOperation.DeleteFile(WTGModel.vhdTempPath + "\\win8.vhd");
                FileOperation.DeleteFile(WTGModel.vhdTempPath + "\\win8.vhdx");
                FileOperation.DeleteFile(WTGModel.vhdTempPath + "\\" + WTGModel.vhdNameWithoutExt + ".vhd");
                FileOperation.DeleteFile(WTGModel.vhdTempPath + "\\" + WTGModel.vhdNameWithoutExt + ".vhdx");
            }
            catch (Exception ex)
            {
                //MsgManager.getResString("Msg_DeleteTempError")
                //程序删除临时文件出错!可重启程序或重启电脑重试!\n
                MessageBox.Show(MsgManager.GetResString("Msg_DeleteTempError", MsgManager.ci) + ex.ToString());
                Log.WriteLog("DeleteVHDTemp.log", ex.ToString());
                //shouldcontinue = false;
            }
        }
        /// <summary>
        /// 执行Diskpart命令
        /// </summary>


        //public void RunDiskpartScriptByScriptFile(string scriptFile)
        //{
        //    StringBuilder dpargs = new StringBuilder();
        //    dpargs.Append(" /s \"");
        //    dpargs.Append(scriptFile);
        //    try
        //    {
        //        ProcessManager.ECMD("diskpart.exe", dpargs.ToString());
        //    }
        //    catch (Exception)
        //    {
        //        //ProcessManager.KillProcessByName("diskpart.exe");
        //        throw;

        //    }
        //}


        public void RunDiskpartScript()
        {
            OutputFilePath = Path.GetTempFileName();
            CreateScriptFile();
            StringBuilder dpargs = new StringBuilder();

            dpargs.Append(" /s \"");
            dpargs.Append(TempScriptFile);
            dpargs.Append("\"");
            if (this.OutputToFile)
            {
                dpargs.Append(" > ");
                dpargs.Append("\"");
                dpargs.Append(this.OutputFilePath);
                dpargs.Append("\"");
                ProcessManager.SyncCMD("diskpart.exe" + dpargs.ToString());
            }
            else
            {
                try
                {
                    ProcessManager.ECMD("diskpart.exe", dpargs.ToString());
                }
                catch (Exception)
                {
                    //ProcessManager.KillProcessByName("diskpart.exe");
                    throw;
                }
            }
            //System.Console.WriteLine(File.ReadAllText (this.scriptPath));
            //System.Console.WriteLine(dpargs.ToString());
            //System.Windows.Forms.MessageBox.Show(dpargs.ToString());

            //System.Console.WriteLine(File.ReadAllText (this.outputFilePath));
            FileOperation.DeleteFile(TempScriptFile);
        }
        public static string AutoChooseESDImageIndex(string esdPath)
        {
            string        outputFilePath = Path.GetTempFileName();
            StringBuilder args           = new StringBuilder();

            args.Append(" /get-wiminfo /wimfile:\"");
            args.Append(esdPath);
            args.Append("\" /english");
            args.Append(" > ");
            args.Append("\"");
            args.Append(outputFilePath);
            args.Append("\"");
            //ProcessManager.RunDism(args.ToString());
            ProcessManager.SyncCMD("dism.exe" + args.ToString());

            string          outputFileText = File.ReadAllText(outputFilePath);
            MatchCollection mc             = Regex.Matches(outputFileText, @"Index");

            if (mc.Count > 1)
            {
                FileOperation.DeleteFile(outputFilePath); return("4");
            }
            else
            {
                FileOperation.DeleteFile(outputFilePath); return("1");
            }
            //Match match = Regex.Match(outputFileText, @"Index :([1-9]).+Windows Technical Preview", RegexOptions.Singleline);
            //MessageBox.Show(match.Groups[1].Value);
            //ProcessManager.ECMD("diskpart.exe", args.ToString());

            //System.Console.WriteLine(File.ReadAllText (this.scriptPath));
            //System.Console.WriteLine(dpargs.ToString());
            //System.Windows.Forms.MessageBox.Show(dpargs.ToString());

            //System.Console.WriteLine(File.ReadAllText (this.outputFilePath));
        }
 /// <summary>
 /// 删除输出文件
 /// </summary>
 public void DeleteOutputFile()
 {
     FileOperation.DeleteFile(this.OutputFilePath);
 }