1
This commit is contained in:
66
Unity/Scripts/Utility/Path.cs
Normal file
66
Unity/Scripts/Utility/Path.cs
Normal file
@@ -0,0 +1,66 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using UnityEngine;
|
||||
using System.Linq;
|
||||
namespace BITKit
|
||||
{
|
||||
public static partial class Utility
|
||||
{
|
||||
public static class Path
|
||||
{
|
||||
[RuntimeInitializeOnLoadMethod]
|
||||
static void Init()
|
||||
{
|
||||
dataPath = Application.dataPath;
|
||||
persistentDataPath = Application.persistentDataPath;
|
||||
currentDirectory = System.Environment.CurrentDirectory;
|
||||
}
|
||||
public static string dataPath { get; private set; }
|
||||
public static string persistentDataPath { get; private set; }
|
||||
public static string currentDirectory { get; private set; }
|
||||
public static string Get(params string[] nextPaths)
|
||||
{
|
||||
currentDirectory = System.Environment.CurrentDirectory;
|
||||
var path = currentDirectory;
|
||||
var filePath = System.IO.Path.Combine(currentDirectory, "Assembly-CSharp.csproj");
|
||||
if (File.Exists(filePath))
|
||||
{
|
||||
path = System.IO.Path.Combine(path, "Assets");
|
||||
}
|
||||
foreach (var nextPath in nextPaths)
|
||||
{
|
||||
path = System.IO.Path.Combine(path, nextPath);
|
||||
}
|
||||
return path;
|
||||
}
|
||||
public static string CombinePath(params string[] nextPaths)
|
||||
{
|
||||
string path = nextPaths[0];
|
||||
for (int i = 1; i < nextPaths.Length - 1; i++)
|
||||
{
|
||||
path += "/" + nextPaths[i];
|
||||
}
|
||||
path += "/" + nextPaths.Last();
|
||||
return path;
|
||||
}
|
||||
public static IEnumerable<string> ReadAllFile(string folderPath, string filter = null)
|
||||
{
|
||||
if (Directory.Exists(folderPath))
|
||||
{
|
||||
DirectoryInfo directoryInfo = new DirectoryInfo(folderPath);
|
||||
|
||||
var files = directoryInfo.GetFiles()
|
||||
.OrderBy(x => x.LastWriteTime)
|
||||
.Select(x => x);
|
||||
if (filter.IsValid())
|
||||
{
|
||||
files = files.Where(x => x.Name.Contains(filter));
|
||||
}
|
||||
return files.Select(x => x.ToString());
|
||||
}
|
||||
return new List<string>();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user