BuildServerUploaderConsole.Processes.DirectoryHelper.DeleteDirectory C# (CSharp) Метод

DeleteDirectory() публичный статический Метод

public static DeleteDirectory ( string targetDir ) : void
targetDir string
Результат void
        public static void DeleteDirectory(string targetDir)
        {
            if (Directory.Exists(targetDir))
            {
                string[] files = Directory.GetFiles(targetDir);
                string[] dirs = Directory.GetDirectories(targetDir);

                foreach (string file in files)
                {
                    File.SetAttributes(file, FileAttributes.Normal);
                    File.Delete(file);
                }

                foreach (string dir in dirs)
                {
                    DeleteDirectory(dir);
                }

                int numberOfTries = 0;
                while (numberOfTries < 4)
                {
                    try
                    {
                        Directory.Delete(targetDir, true);
                        break;
                    }
                    catch
                    {
                        System.Threading.Thread.Sleep(30);
                        numberOfTries++;
                    }
                }

                if (numberOfTries == 4)
                {
                    throw new Exception("Failed to delete\n\n" + targetDir);
                }
            }
        }

Usage Example

Пример #1
0
        public override void ExecuteStep()
        {
            //Create Directory
            var frbdkForZipDirectory = DirectoryHelper.ReleaseDirectory + @"FRBDK For Zip\";

            frbdkForZipDirectory = FileManager.Standardize(frbdkForZipDirectory);

            DirectoryHelper.DeleteDirectory(frbdkForZipDirectory);

            if (!Directory.Exists(frbdkForZipDirectory))
            {
                Directory.CreateDirectory(frbdkForZipDirectory);
            }

            _destDirectory = frbdkForZipDirectory;

            string frbdkDirectory =
                FileManager.MakeAbsolute("../../../../../");

            foreach (var xna3_1tool in mXna3_1Tools)
            {
                CopyDirectory(frbdkDirectory + xna3_1tool, "Copied " + xna3_1tool);
            }

            //XNA 4 TOOLS
            string xna4ToolsDirectory = FileManager.Standardize(frbdkForZipDirectory + @"\Xna 4 Tools\");

            if (!Directory.Exists(xna4ToolsDirectory))
            {
                Directory.CreateDirectory(xna4ToolsDirectory);
            }

            _destDirectory = xna4ToolsDirectory;

            foreach (var xna4_0tool in mXna4_0ToolsInOwnDirectories)
            {
                string subdirectory = xna4_0tool.Substring(0, xna4_0tool.IndexOf("\\")) + "\\";

                CopyDirectory(frbdkDirectory + xna4_0tool, "Copied " + xna4_0tool, subdirectory);
            }

            foreach (var xna4_0tool in mXna4_0Tools)
            {
                CopyDirectory(frbdkDirectory + xna4_0tool, "Copied " + xna4_0tool);
            }

            #region Copy genGfx, Assets and settings folders from each tool

            FileManager.CopyDirectory(frbdkForZipDirectory + @"\Assets", frbdkForZipDirectory + @"\Xna 4 Tools\Assets", false, _excludeFiles, _excludedDirs);

            Results.WriteMessage("Successfully copied Assets folder." + @" Copied to " + frbdkForZipDirectory + @"\Xna 4 Tools\Assets");

            FileManager.CopyDirectory(frbdkForZipDirectory + "/Content", frbdkForZipDirectory + @"\Xna 4 Tools\Content", false, _excludeFiles, _excludedDirs);

            Results.WriteMessage("Successfully copied Content folder." + @" Copied to " + frbdkForZipDirectory + @"\Xna 4 Tools\Content");

            #endregion
        }
DirectoryHelper