private void renameProfile_btn_Click(object sender, EventArgs e) { DialogResult res; res = MessageBox.Show("Are you sure you want to delete the \"" + profile + "\" profile? You cannot undo this action! All mods contained in it will be completly deleted without recover options!", "Delete profile", MessageBoxButtons.YesNo, MessageBoxIcon.Warning); if (res == DialogResult.Yes) { FileSystem.DeleteDirectory(Application.StartupPath + "/Profiles/" + profile, DeleteDirectoryOption.DeleteAllContents); Application.Restart(); Environment.Exit(0); } }
private static void DeleteFilesOrDirectories(string filePath) { try { var dir = Path.GetDirectoryName(filePath); if (dir == null) { return; } var files = Directory.EnumerateFiles(dir).Where(HelperFunctions.IsVideo).ToList(); if (filePath != Xml.Location) { if (files.All(f => f == filePath) && dir != Xml.Location.Substring(0, Xml.Location.Length - 1)) { FileSystem.DeleteDirectory(dir, UIOption.OnlyErrorDialogs, RecycleOption.SendToRecycleBin); } else { FileSystem.DeleteFile(filePath, UIOption.OnlyErrorDialogs, RecycleOption.SendToRecycleBin); } } else { // Delete empty directories var allDirectories = Directory.EnumerateDirectories(filePath).ToList(); var fileDirectories = files.Select(Path.GetDirectoryName).ToList(); foreach (var directory in allDirectories.Where(directory => !fileDirectories.Contains(directory))) { FileSystem.DeleteDirectory(directory, UIOption.OnlyErrorDialogs, RecycleOption.SendToRecycleBin); } } } catch (IOException ex) { LogFile.Log(ex.ToString()); } }