Files @ 234ae2144a25
Branch filter:

Location: ATITD-Tools/Desert-Paint-Lab/FileUtils.cs - annotation

jmaltzen
Add a utility function to fetch the app data path (reducing code duplication)
f28757bb21cb
f28757bb21cb
f28757bb21cb
f28757bb21cb
f28757bb21cb
f28757bb21cb
f28757bb21cb
f28757bb21cb
f28757bb21cb
f28757bb21cb
234ae2144a25
234ae2144a25
234ae2144a25
234ae2144a25
234ae2144a25
234ae2144a25
234ae2144a25
234ae2144a25
234ae2144a25
f28757bb21cb
f28757bb21cb
f28757bb21cb
f28757bb21cb
f28757bb21cb
f28757bb21cb
f28757bb21cb
f28757bb21cb
f28757bb21cb
501aa95c46d7
501aa95c46d7
501aa95c46d7
501aa95c46d7
8c3f6ec929d6
501aa95c46d7
8c3f6ec929d6
501aa95c46d7
501aa95c46d7
501aa95c46d7
501aa95c46d7
501aa95c46d7
501aa95c46d7
501aa95c46d7
501aa95c46d7
f28757bb21cb
f28757bb21cb
f28757bb21cb
f28757bb21cb
f28757bb21cb
f28757bb21cb
f28757bb21cb
f28757bb21cb
f28757bb21cb
501aa95c46d7
501aa95c46d7
8c3f6ec929d6
501aa95c46d7
501aa95c46d7
8c3f6ec929d6
501aa95c46d7
501aa95c46d7
501aa95c46d7
f28757bb21cb
f28757bb21cb
f28757bb21cb
f28757bb21cb
f28757bb21cb
f28757bb21cb
f28757bb21cb
f28757bb21cb
f28757bb21cb
f28757bb21cb
f28757bb21cb
f28757bb21cb
501aa95c46d7
f28757bb21cb
f28757bb21cb
f28757bb21cb
f28757bb21cb
f28757bb21cb
501aa95c46d7
501aa95c46d7
501aa95c46d7
501aa95c46d7
501aa95c46d7
501aa95c46d7
501aa95c46d7
501aa95c46d7
501aa95c46d7
501aa95c46d7
501aa95c46d7
501aa95c46d7
501aa95c46d7
f28757bb21cb
f28757bb21cb
f28757bb21cb
f28757bb21cb
f28757bb21cb
f28757bb21cb
f28757bb21cb
f28757bb21cb
501aa95c46d7
501aa95c46d7
501aa95c46d7
501aa95c46d7
501aa95c46d7
501aa95c46d7
501aa95c46d7
f28757bb21cb
f28757bb21cb
f28757bb21cb
f28757bb21cb
f28757bb21cb
f28757bb21cb
f28757bb21cb
f28757bb21cb
f28757bb21cb
f28757bb21cb
f28757bb21cb
f28757bb21cb
f28757bb21cb
using System;

namespace DesertPaintLab
{
    public class FileUtils
    {
        public FileUtils()
        {
        }

        public static string AppDataPath
        {
            get {
                return System.IO.Path.Combine(
                    Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData),
                    "DesertPaintLab");
            }
        }

        public static string FindApplicationResourceDirectory(string dirname)
        {
            string dirPath = System.IO.Path.Combine(
                    System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location),
                    dirname);
            if (System.IO.Directory.Exists(dirPath))
            {
                return dirPath;
            }
            dirPath = System.IO.Path.Combine(
                System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location),
                "data", 
                dirname);
            if (System.IO.Directory.Exists(dirPath))
            {
                return dirPath;
            }
            // try "Resources" in case this is a Mac app bundle
            dirPath = System.IO.Path.Combine(
                Environment.GetFolderPath(Environment.SpecialFolder.Resources), "data", dirname);
            if (System.IO.Directory.Exists(dirPath))
            {
                return dirPath;
            }
            // try "Resources" in case this is a Mac app bundle
            dirPath = System.IO.Path.Combine(
                Environment.GetFolderPath(Environment.SpecialFolder.Resources), dirname);
            if (System.IO.Directory.Exists(dirPath))
            {
                return dirPath;
            }
            dirPath = System.IO.Path.Combine(
                System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location),
                "Resources", "data",
                dirname);
            if (System.IO.Directory.Exists(dirPath))
            {
                // not found
                return dirPath;
            }
            dirPath = System.IO.Path.Combine(
                System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location),
                "Resources", 
                dirname);
            if (!System.IO.Directory.Exists(dirPath))
            {
                // not found
                dirPath = null;
            }
            return dirPath;
        }

        public static string FindApplicationResourceFile(string filename)
        {
            // start with the location of the executable
            string filePath = System.IO.Path.Combine(
                    System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location),
                    filename);
            if (!System.IO.File.Exists(filePath))
            {
                filePath = System.IO.Path.Combine(
                    System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location),
                    "data", 
                    filename);
            }
            if (!System.IO.File.Exists(filePath))
            {
                // try "Resources/data" in case this is a Mac app bundle
                filePath = System.IO.Path.Combine(
                    Environment.GetFolderPath(Environment.SpecialFolder.Resources), "data", filename);
            }
            if (!System.IO.File.Exists(filePath))
            {
                // try "Resources" in case this is a Mac app bundle
                filePath = System.IO.Path.Combine(
                    Environment.GetFolderPath(Environment.SpecialFolder.Resources), filename);
            }
            if (!System.IO.File.Exists(filePath))
            {
                filePath = System.IO.Path.Combine(
                    System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location),
                    "Resources", "data",
                    filename);
            }
            if (!System.IO.File.Exists(filePath))
            {
                filePath = System.IO.Path.Combine(
                    System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location),
                    "Resources", 
                    filename);
            }
            if (!System.IO.File.Exists(filePath))
            {
                // not found
                filePath = null;
            }
            return filePath;
        }
    }
}