document paths system

This commit is contained in:
Michael 2017-05-19 21:47:02 -04:00
parent c0015d369d
commit ca40871a63

View file

@ -35,8 +35,14 @@ using System.Threading;
namespace ShiftOS.Engine
{
/// <summary>
/// Management class for ShiftFS path variables.
/// </summary>
public static class Paths
{
/// <summary>
/// Initiate the path system.
/// </summary>
public static void Init()
{
Locations = new Dictionary<string, string>();
@ -88,6 +94,10 @@ namespace ShiftOS.Engine
}
/// <summary>
/// Gets all full paths without their keynames.
/// </summary>
/// <returns>A string array representing all paths.</returns>
public static string[] GetAllWithoutKey()
{
List<string> strings = new List<string>();
@ -99,11 +109,19 @@ namespace ShiftOS.Engine
}
/// <summary>
/// Get the full path using a path key.
/// </summary>
/// <param name="id">The path key (folder/filename) for the path.</param>
/// <returns>The full path.</returns>
public static string GetPath(string id)
{
return Locations[id];
}
/// <summary>
/// Checks all directories in the path system to see if they exist, and if not, creates them.
/// </summary>
private static void CheckPathExistence()
{
foreach(var path in Locations)
@ -119,8 +137,14 @@ namespace ShiftOS.Engine
}
}
/// <summary>
/// Gets or sets a <see cref="Dictionary{string, string}"/> representing all paths in the system.
/// </summary>
private static Dictionary<string, string> Locations { get; set; }
/// <summary>
/// Mounts the ShiftOS shared directory to 1:/, creating the directory if it does not exist.
/// </summary>
public static void CreateAndMountSharedFolder()
{
if (!System.IO.Directory.Exists(SharedFolder))
@ -201,9 +225,7 @@ namespace ShiftOS.Engine
t.Start();
}
public static void ScanForDirectories(string folder, int mount)
private static void ScanForDirectories(string folder, int mount)
{
foreach (var file in System.IO.Directory.GetFiles(folder))
{
@ -220,10 +242,27 @@ namespace ShiftOS.Engine
}
}
/// <summary>
/// Gets the ShiftOS shared folder.
/// </summary>
public static string SharedFolder { get { return Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\\ShiftOS_Shared"; } }
/// <summary>
/// Gets the location of the ShiftOS.mfs file.
/// </summary>
public static string SaveFile { get { return Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\\ShiftOS.mfs"; } }
/// <summary>
/// Gets the path of the inner save file.
/// </summary>
[Obsolete("Not used.")]
public static string SaveFileInner { get { return Locations["save.json"]; } }
/// <summary>
/// Add a path to the system.
/// </summary>
/// <param name="parent">The path's parent directory.</param>
/// <param name="path">The filename for the path.</param>
public static void AddPath(string parent, string path)
{
Locations.Add(path, Locations[parent] + "/" + path);