diff options
author | Thomas Leyh <leyh.thomas@web.de> | 2016-07-24 08:14:18 +0200 |
---|---|---|
committer | Thomas Leyh <leyh.thomas@web.de> | 2016-07-24 08:14:18 +0200 |
commit | ced3d03bdb3ce866d832e03fb212865140905a9a (patch) | |
tree | 2a16c2063a46d3c354ce1585029dda3124f6ad93 /V3/Data/Internal/PathManager.cs | |
parent | 0394dccaf06e1009e591a6ff4d645895574724c1 (diff) | |
download | V3-release.tar.gz V3-release.tar.bz2 |
Diffstat (limited to 'V3/Data/Internal/PathManager.cs')
-rw-r--r-- | V3/Data/Internal/PathManager.cs | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/V3/Data/Internal/PathManager.cs b/V3/Data/Internal/PathManager.cs new file mode 100644 index 0000000..3f4ad9d --- /dev/null +++ b/V3/Data/Internal/PathManager.cs @@ -0,0 +1,51 @@ +using System; +using System.IO; + +namespace V3.Data.Internal { + /// <summary> + /// Default implementation of IPathManager. + /// </summary> + // ReSharper disable once ClassNeverInstantiated.Global + internal sealed class PathManager : IPathManager + { + /// <summary> + /// The base directory for persistent application data. + /// </summary> + public string AppDirectory { get; } + + /// <summary> + /// The file to store the options in. + /// </summary> + public string OptionsFile { get; } + + /// <summary> + /// The directory for save games. + /// </summary> + public string SaveGameDirectory { get; } + + /// <summary> + /// Creates a new path manager and initializes the paths, but does not + /// create the directories if they don’t already exist. + /// </summary> + public PathManager() + { + var localAppDir = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData); + AppDirectory = $"{localAppDir}/V3"; + SaveGameDirectory = $"{AppDirectory}/SaveGames"; + OptionsFile = $"{AppDirectory}/Options.xml"; + } + + /// <summary> + /// Creates the application directories that do not already exist. + /// </summary> + public void CreateMissingDirectories() + { + string[] directories = { AppDirectory, SaveGameDirectory }; + foreach (var directory in directories) + { + if (!Directory.Exists(directory)) + Directory.CreateDirectory(directory); + } + } + } +} |