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);
            }
        }
示例#2
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());
            }
        }