目录
3.GetNames_File 获取文件名字(后缀集合过滤)
7.GetPaths_File 获取文件路径(后缀集合过滤)
10.GetFile_Texture2D 获取文件:图片批量读取
11.GetFile_Texture2D 获取文件:图片批量读取(后缀过滤)
12.GetFile_Texture2D 获取文件:图片批量读取(后缀集合过滤)
14.GetFile_Sprite 获取文件:精灵图片批量读取
15.GetFile_Sprite 获取文件:精灵图片批量读取(后缀过滤)
16.GetFile_Sprite 获取文件:精灵图片批量读取(后缀集合过滤)
17.String_Conversion 乱码转换:用于解决LitJson把类转换成string时出现的乱码
18.Json_ToJson 将对象转换成json(封装LitJson)
19.Json_ToObject 将json转换成对象(封装LitJson)
20.Json_ToObject 将json转换成对象(封装LitJson)
21.If_JsonString 判断字符串是否为json格式
22.GetFile_JsonObject 获取文件: 把Json文件变成类
23.GetFile_JsonObject 获取文件: 把Json文件变成json数据类
24.SetFile_JsonObject 写入文件:把类变成json文件
25.SetFile_JsonObject_Format 写入文件:把类变成json文件(缩进格式)
26.Json_StringFormat 格式转换:将Json缩进整理,用于查看
27.GetUrl_QrcodeTexture2D 将网址转换为二维码图片
28.GetUrl_QrcodeSprite 将网址转换为二维码精灵图片
* 作者:闪电Y黑客
* 日期: 2019.6.11
* 功能:对外部文件的读取
*注意:使用了Dll( LitJson、zxing.unity )
1.GetNames_File 获取文件名字
/// <summary>
/// 获取文件名字
/// </summary>
/// <param name="Path">文件夹路径</param>
/// <returns>return : 文件名集合</returns>
static public List<string> GetNames_File(string Path)
{
List<string> FileNames = new List<string>();
DirectoryInfo info = new DirectoryInfo(Path);//获取路径文件夹文件
FileInfo[] infos = info.GetFiles();//获取所有文件名
foreach (FileInfo file in infos)//遍历每个文件
{
FileNames.Add(file.Name);//存入链表
}
return FileNames;
}
2.GetNames_File 获取文件名字(后缀过滤)
/// <summary>
/// 获取文件名字(后缀过滤)
/// </summary>
/// <param name="Path">文件夹路径</param>
/// <param name="type">后缀</param>
/// <returns>return : 文件名集合</returns>
static public List<string> GetNames_File(string Path, string type)
{
List<string> FileNames = new List<string>();
DirectoryInfo info = new DirectoryInfo(Path);//获取路径文件夹文件
FileInfo[] infos = info.GetFiles();//获取所有文件名
type = type.ToUpper();
foreach (FileInfo file in infos)//遍历每个文件
{
string[] fileName = file.Name.Split('.');
if (type == fileName[fileName.Length - 1].ToUpper()) FileNames.Add(file.Name);//存入链表
}
return FileNames;
}
3.GetNames_File 获取文件名字(后缀集合过滤)
/// <summary>
/// 获取文件名字(后缀集合过滤)
/// </summary>
/// <param name="Path">文件夹路径</param>
/// <param name="type">后缀</param>
/// <returns>return : 文件名集合</returns>
static public List<string> GetNames_File(string Path, string[] types)
{
List<string> FileNames = new List<string>();
DirectoryInfo info = new DirectoryInfo(Path);//获取路径文件夹文件
FileInfo[] infos = info.GetFiles();//获取所有文件名
foreach (FileInfo file in infos)//遍历每个文件
{
string[] fileName = file.Name.Split('.');
foreach (var type in types)
{
if (type.ToUpper() == fileName[fileName.Length - 1].ToUpper()) FileNames.Add(file.Name);//存入链表
}
}
return FileNames;
}
4.GetNames_Folder 获取文件夹名字
/// <summary>
/// 获取文件夹名字
/// </summary>
/// <param name="Path">文件夹路径</param>
/// <returns>return : 文件夹名集合</returns>
static public List<string> GetNames_Folder(string Path)
{
List<string> FolderNames = new List<string>();
DirectoryInfo[] dirInfo = new DirectoryInfo(Path).GetDirectories();
foreach (var Folder in dirInfo)
{
FolderNames.Add(Folder.Name);
}
return FolderNames;
}
5.GetPaths_File 获取文件路径
/// <summary>
/// 获取文件路径
/// </summary>
/// <param name="Path">文件夹</param>
/// <returns>return : 文件路径集合</returns>
static public List<string> GetPaths_File(string Path)
{
List<string> FileNames = new List<string>();
DirectoryInfo info = new DirectoryInfo(Path);//获取路径文件夹文件
FileInfo[] infos = info.GetFiles();//获取所有文件名
foreach (FileInfo file in infos)//遍历每个文件
{
FileNames.Add(Path + "/" + file.Name);//存入链表
}
return FileNames;
}
6.GetPaths_File 获取文件路径(后缀过滤)
/// <summary>
/// 获取文件路径(后缀过滤)
/// </summary>
/// <param name="Path">文件夹</param>
/// <param name="type"></param>
/// <returns>return : 文件路径集合</returns>
static public List<string> GetPaths_File(string Path, string type)
{
List<string> FileNames = new List<string>();
DirectoryInfo info = new DirectoryInfo(Path);//获取路径文件夹文件
FileInfo[] infos = info.GetFiles();//获取所有文件名
type = type.ToUpper();
foreach (FileInfo file in infos)//遍历每个文件
{
string[] fileName = file.Name.Split('.');
if (type == fileName[fileName.Length - 1].ToUpper()) FileNames.Add(Path + "/" + file.Name);//存入链表
}
return FileNames;
}
7.GetPaths_File 获取文件路径(后缀集合过滤)
/// <summary>
/// 获取文件路径(后缀集合过滤)
/// </summary>
/// <param name="Path">文件夹</param>
/// <param name="type"></param>
/// <returns>return : 文件路径集合</returns>
static public List<string> GetPaths_File(string Path, string[] types)
{
List<string> FileNames = new List<string>();
DirectoryInfo info = new DirectoryInfo(Path);//获取路径文件夹文件
FileInfo[] infos = info.GetFiles();//获取所有文件名
foreach (FileInfo file in infos)//遍历每个文件
{
string[] fileName = file.Name.Split('.');
foreach (var type in types)
{
if (type.ToUpper() == fileName[fileName.Length - 1].ToUpper()) FileNames.Add(Path + "/" + file.Name);//存入链表
}
}
return FileNames;
}
8.GetPaths_Folder 获取文件夹路径
/// <summary>
/// 获取文件夹路径
/// </summary>
/// <param name="Path">文件夹</param>
/// <returns>return : 文件路径集合</returns>
static public List<string> GetPaths_Folder(string Path)
{
List<string> FolderNames = new List<string>();
DirectoryInfo[] dirInfo = new DirectoryInfo(Path).GetDirectories();
foreach (var Folder in dirInfo)
{
FolderNames.Add(Path + "/" + Folder.Name);
}
return FolderNames;
}
9.GetFile_Texture2D 获取文件:图片读取
/// <summary>
/// 获取文件:图片读取
/// </summary>
/// <param name="Path">路径</param>
/// <returns>return : 图片</returns>
static public Texture2D GetFile_Texture2D(string Path)
{
//创建文件读取流
FileStream fileStream = new FileStream(Path, FileMode.Open, FileAccess.Read);
fileStream.Seek(0, SeekOrigin.Begin);
//创建文件长度缓冲区
byte[] bytes = new byte[fileStream.Length];
//读取文件
fileStream.Read(bytes, 0, (int)fileStream.Length);
//释放文件读取流
fileStream.Close();
fileStream.Dispose();
fileStream = null;
//创建Texture
Texture2D texture = new Texture2D(0, 0);
texture.LoadImage(bytes);
return texture;
}
10.GetFile_Texture2D 获取文件:图片批量读取
/// <summary>
/// 获取文件:图片批量读取
/// </summary>
/// <param name="Paths">路径集合</param>
/// <returns>return : 图片集合</returns>
static public List<Texture2D> GetFile_Texture2D(List<string> Paths)
{
List<Texture2D> Texture2Ds = new List<Texture2D>();
foreach (string Path in Paths)
{
Texture2Ds.Add(GetFile_Texture2D(Path));
}
return Texture2Ds;
}
11.GetFile_Texture2D 获取文件:图片批量读取(后缀过滤)
/// <summary>
/// 获取文件:图片批量读取(后缀过滤)
/// </summary>
/// <param name="Paths">路径集合</param>
/// <returns>return : 图片集合</returns>
static public List<Texture2D> GetFile_Texture2D(string Path, string types)
{
return GetFile_Texture2D(GetPaths_File(Path, types));
}
12.GetFile_Texture2D 获取文件:图片批量读取(后缀集合过滤)
/// <summary>
/// 获取文件:图片批量读取(后缀集合过滤)
/// </summary>
/// <param name="Paths">路径集合</param>
/// <returns>return : 图片集合</returns>
static public List<Texture2D> GetFile_Texture2D(string Path, string[] types)
{
return GetFile_Texture2D(GetPaths_File(Path, types));
}
13.GetFile_Sprite 获取文件:精灵图片读取
/// <summary>
/// 获取文件:精灵图片读取
/// </summary>
/// <param name="Path">路径</param>
/// <returns>return : 精灵图片</returns>
static public Sprite GetFile_Sprite(string Path)
{
Texture2D texture = GetFile_Texture2D(Path);
//创建Sprite
Sprite sprite = Sprite.Create(texture, new Rect(0, 0, texture.width, texture.height), Vector2.zero);
return sprite;
}
14.GetFile_Sprite 获取文件:精灵图片批量读取
/// <summary>
/// 获取文件:精灵图片批量读取
/// </summary>
/// <param name="Paths">路径集合</param>
/// <returns>return : 精灵图片集合</returns>
static public List<Sprite> GetFile_Sprite(List<string> Paths)
{
List<Sprite> Sprites = new List<Sprite>();
foreach (string Path in Paths)
{
Sprites.Add(GetFile_Sprite(Path));
}
return Sprites;
}
15.GetFile_Sprite 获取文件:精灵图片批量读取(后缀过滤)
/// <summary>
/// 获取文件:精灵图片批量读取(后缀过滤)
/// </summary>
/// <param name="Paths">路径集合</param>
/// <returns>return : 精灵图片集合</returns>
static public List<Sprite> GetFile_Sprite(string Path, string type)
{
return GetFile_Sprite(GetPaths_File(Path, type));
}
16.GetFile_Sprite 获取文件:精灵图片批量读取(后缀集合过滤)
/// <summary>
/// 获取文件:精灵图片批量读取(后缀集合过滤)
/// </summary>
/// <param name="Paths">路径集合</param>
/// <returns>return : 精灵图片集合</returns>
static public List<Sprite> GetFile_Sprite(string Path, string[] types)
{
return GetFile_Sprite(GetPaths_File(Path, types));
}
17.String_Conversion 乱码转换:用于解决LitJson把类转换成string时出现的乱码
/// <summary>
/// 乱码转换:用于解决LitJson把类转换成string时出现的乱码
/// </summary>
/// <param name="source">乱码字符串</param>
/// <returns>正常字符串</returns>
static public string String_Conversion(string source)
{
return new Regex(@"\\u([0-9A-F]{4})", RegexOptions.IgnoreCase)
.Replace(source, x => string.Empty + Convert.ToChar(Convert.ToUInt16(x.Result("$1"), 16)));
}
18.Json_ToJson 将对象转换成json(封装LitJson)
/// <summary>
/// 将对象转换成json(封装LitJson)
/// </summary>
/// <param name="obj">实例化的对象</param>
/// <returns>return : Json字符串</returns>
static public string Json_ToJson(object obj)
{
return String_Conversion(JsonMapper.ToJson(obj));
}
19.Json_ToObject<T> 将json转换成对象(封装LitJson)
/// <summary>
/// 将json转换成对象(封装LitJson)
/// </summary>
/// <typeparam name="T">类型</typeparam>
/// <param name="json">Json字符串</param>
/// <returns>return : 实例化的对象</returns>
static public T Json_ToObject<T>(string json)
{
return JsonMapper.ToObject<T>(json);
}
20.Json_ToObject 将json转换成对象(封装LitJson)
/// <summary>
/// 将json转换成对象(封装LitJson)
/// </summary>
/// <param name="json">Json字符串</param>
/// <returns>return : 实例化的对象数据</returns>
static public JsonData Json_ToObject(string json)
{
return JsonMapper.ToObject(json);
}
21.If_JsonString 判断字符串是否为json格式
/// <summary>
/// 判断字符串是否为json格式
/// </summary>
/// <param name="json">要判断的json字符串</param>
/// <returns>return : bool</returns>
static public bool If_JsonString(string json)
{
try
{
JsonMapper.ToObject<object>(json);
return true;
}
catch
{
return false;
}
}
22.GetFile_JsonObject<T> 获取文件: 把Json文件变成类
/// <summary>
/// 获取文件: 把Json文件变成类
/// </summary>
/// <typeparam name="T">类型</typeparam>
/// <param name="Path">文件路径</param>
/// <returns>return : 返回类</returns>
static public T GetFile_JsonObject<T>(string Path)
{
string str = File.ReadAllText(Path);//读取文件所有内容
return Json_ToObject<T>(str);//json变成类
}
23.GetFile_JsonObject 获取文件: 把Json文件变成json数据类
// 获取文件: 把Json文件变成json数据类
/// </summary>
/// <param name="Path">文件路径</param>
/// <returns>return : 返回类数据</returns>
static public JsonData GetFile_JsonObject(string Path)
{
string str = File.ReadAllText(Path);//读取文件所有内容
return Json_ToObject(str);//json变成类
}
24.SetFile_JsonObject<T> 写入文件:把类变成json文件
/// <summary>
/// 写入文件:把类变成json文件
/// </summary>
/// <typeparam name="T">类型</typeparam>
/// <param name="Object">传入类</param>
/// <param name="Path">文件路径</param>
static public void SetFile_JsonObject<T>(T Object, string Path)
{
string Folder = Path.Substring(0, Path.LastIndexOf('/'));//去除文件名
Directory.CreateDirectory(Folder);//如果文件夹不存在就创建它
File.WriteAllText(Path, Json_ToJson(Object));//创建新文件
}
25.SetFile_JsonObject_Format<T> 写入文件:把类变成json文件(缩进格式)
/// <summary>
/// 写入文件:把类变成json文件(缩进格式)
/// </summary>
/// <typeparam name="T">类型</typeparam>
/// <param name="Object">传入类</param>
/// <param name="Path">文件路径</param>
static public void SetFile_JsonObject_Format<T>(T Object, string Path)
{
string Folder = Path.Substring(0, Path.LastIndexOf('/'));//去除文件名
Directory.CreateDirectory(Folder);//如果文件夹不存在就创建它
File.WriteAllText(Path, Json_StringFormat(Json_ToJson(Object)));//创建新文件
}
26.Json_StringFormat 格式转换:将Json缩进整理,用于查看
/// <summary>
/// 格式转换:将Json缩进整理,用于查看
/// </summary>
/// <param name="sourceJson">源Json字符串</param>
/// <returns>return : 整理后的Json字符串</returns>
static public string Json_StringFormat(string sourceJson)
{
sourceJson += " ";
int itap = 0;
string newjson = "";
for (int i = 0; i < sourceJson.Length - 1; i++)
{
if (sourceJson[i] == '{' || sourceJson[i] == '[')
{
itap++;
newjson += sourceJson[i] + "\n";
for (int a = 0; a < itap; a++) { newjson += "\t"; }
}
else if ((sourceJson[i] == '}' || sourceJson[i] == ']'))
{
itap--;
newjson += "\n";
for (int a = 0; a < itap; a++) { newjson += "\t"; }
newjson += sourceJson[i] + "" + ((sourceJson[i + 1] == ',') ? "," : "") + "\n";
if (sourceJson[i + 1] == ',') i++;
for (int a = 0; a < itap; a++) { newjson += "\t"; }
}
else if (sourceJson[i] != '}' && sourceJson[i] != ']' && sourceJson[i + 1] == ',')
{
newjson += sourceJson[i] + "" + sourceJson[i + 1] + "\n";
i++;
for (int a = 0; a < itap; a++) { newjson += "\t"; }
}
else
{
newjson += sourceJson[i];
}
}
return newjson;
}
27.GetUrl_QrcodeTexture2D 将网址转换为二维码图片
/// <summary>
/// 将网址转换为二维码图片
/// </summary>
/// <param name="URL">网址</param>
/// <returns>return : 二维码图片</returns>
static public Texture2D GetUrl_QrcodeTexture2D(string URL)
{
Texture2D encoded = new Texture2D(256, 256);
var writer = new BarcodeWriter
{
Format = BarcodeFormat.QR_CODE,
Options = new QrCodeEncodingOptions
{
Height = encoded.height,
Width = encoded.width
}
};
encoded.SetPixels32(writer.Write(URL));
encoded.Apply();
return encoded;
}
28.GetUrl_QrcodeSprite 将网址转换为二维码精灵图片
/// <summary>
/// 将网址转换为二维码精灵图片
/// </summary>
/// <param name="URL">网址</param>
/// <returns>return : 二维码精灵图片</returns>
static public Sprite GetUrl_QrcodeSprite(string URL)
{
Texture2D encoded = GetUrl_QrcodeTexture2D(URL);
return Sprite.Create(encoded, new Rect(0, 0, encoded.width, encoded.height), Vector2.zero);
}
全篇:
using System;
using System.Collections.Generic;
using System.IO;
using System.Text.RegularExpressions;
using LitJson;
using UnityEngine;
using ZXing;
using ZXing.QrCode;
/*
* 作者:闪电Y黑客
*
* 日期: 2019.6.11
*
* 功能:对外部文件的读取
*/
namespace SDHK_Tool.Static
{
/// <summary>
/// 用于Unity3d的资源文件读写类
/// </summary>
static public class SS_File
{
/// <summary>
/// 获取文件名字
/// </summary>
/// <param name="Path">文件夹路径</param>
/// <returns>return : 文件名集合</returns>
static public List<string> GetNames_File(string Path)
{
List<string> FileNames = new List<string>();
DirectoryInfo info = new DirectoryInfo(Path);//获取路径文件夹文件
FileInfo[] infos = info.GetFiles();//获取所有文件名
foreach (FileInfo file in infos)//遍历每个文件
{
FileNames.Add(file.Name);//存入链表
}
return FileNames;
}
/// <summary>
/// 获取文件名字(后缀过滤)
/// </summary>
/// <param name="Path">文件夹路径</param>
/// <param name="type">后缀</param>
/// <returns>return : 文件名集合</returns>
static public List<string> GetNames_File(string Path, string type)
{
List<string> FileNames = new List<string>();
DirectoryInfo info = new DirectoryInfo(Path);//获取路径文件夹文件
FileInfo[] infos = info.GetFiles();//获取所有文件名
type = type.ToUpper();
foreach (FileInfo file in infos)//遍历每个文件
{
string[] fileName = file.Name.Split('.');
if (type == fileName[fileName.Length - 1].ToUpper()) FileNames.Add(file.Name);//存入链表
}
return FileNames;
}
/// <summary>
/// 获取文件名字(后缀集合过滤)
/// </summary>
/// <param name="Path">文件夹路径</param>
/// <param name="type">后缀</param>
/// <returns>return : 文件名集合</returns>
static public List<string> GetNames_File(string Path, string[] types)
{
List<string> FileNames = new List<string>();
DirectoryInfo info = new DirectoryInfo(Path);//获取路径文件夹文件
FileInfo[] infos = info.GetFiles();//获取所有文件名
foreach (FileInfo file in infos)//遍历每个文件
{
string[] fileName = file.Name.Split('.');
foreach (var type in types)
{
if (type.ToUpper() == fileName[fileName.Length - 1].ToUpper()) FileNames.Add(file.Name);//存入链表
}
}
return FileNames;
}
/// <summary>
/// 获取文件夹名字
/// </summary>
/// <param name="Path">文件夹路径</param>
/// <returns>return : 文件夹名集合</returns>
static public List<string> GetNames_Folder(string Path)
{
List<string> FolderNames = new List<string>();
DirectoryInfo[] dirInfo = new DirectoryInfo(Path).GetDirectories();
foreach (var Folder in dirInfo)
{
FolderNames.Add(Folder.Name);
}
return FolderNames;
}
/// <summary>
/// 获取文件路径
/// </summary>
/// <param name="Path">文件夹</param>
/// <returns>return : 文件路径集合</returns>
static public List<string> GetPaths_File(string Path)
{
List<string> FileNames = new List<string>();
DirectoryInfo info = new DirectoryInfo(Path);//获取路径文件夹文件
FileInfo[] infos = info.GetFiles();//获取所有文件名
foreach (FileInfo file in infos)//遍历每个文件
{
FileNames.Add(Path + "/" + file.Name);//存入链表
}
return FileNames;
}
/// <summary>
/// 获取文件路径(后缀过滤)
/// </summary>
/// <param name="Path">文件夹</param>
/// <param name="type"></param>
/// <returns>return : 文件路径集合</returns>
static public List<string> GetPaths_File(string Path, string type)
{
List<string> FileNames = new List<string>();
DirectoryInfo info = new DirectoryInfo(Path);//获取路径文件夹文件
FileInfo[] infos = info.GetFiles();//获取所有文件名
type = type.ToUpper();
foreach (FileInfo file in infos)//遍历每个文件
{
string[] fileName = file.Name.Split('.');
if (type == fileName[fileName.Length - 1].ToUpper()) FileNames.Add(Path + "/" + file.Name);//存入链表
}
return FileNames;
}
/// <summary>
/// 获取文件路径(后缀集合过滤)
/// </summary>
/// <param name="Path">文件夹</param>
/// <param name="type"></param>
/// <returns>return : 文件路径集合</returns>
static public List<string> GetPaths_File(string Path, string[] types)
{
List<string> FileNames = new List<string>();
DirectoryInfo info = new DirectoryInfo(Path);//获取路径文件夹文件
FileInfo[] infos = info.GetFiles();//获取所有文件名
foreach (FileInfo file in infos)//遍历每个文件
{
string[] fileName = file.Name.Split('.');
foreach (var type in types)
{
if (type.ToUpper() == fileName[fileName.Length - 1].ToUpper()) FileNames.Add(Path + "/" + file.Name);//存入链表
}
}
return FileNames;
}
/// <summary>
/// 获取文件夹路径
/// </summary>
/// <param name="Path">文件夹</param>
/// <returns>return : 文件路径集合</returns>
static public List<string> GetPaths_Folder(string Path)
{
List<string> FolderNames = new List<string>();
DirectoryInfo[] dirInfo = new DirectoryInfo(Path).GetDirectories();
foreach (var Folder in dirInfo)
{
FolderNames.Add(Path + "/" + Folder.Name);
}
return FolderNames;
}
/// <summary>
/// 获取文件:图片读取
/// </summary>
/// <param name="Path">路径</param>
/// <returns>return : 图片</returns>
static public Texture2D GetFile_Texture2D(string Path)
{
//创建文件读取流
FileStream fileStream = new FileStream(Path, FileMode.Open, FileAccess.Read);
fileStream.Seek(0, SeekOrigin.Begin);
//创建文件长度缓冲区
byte[] bytes = new byte[fileStream.Length];
//读取文件
fileStream.Read(bytes, 0, (int)fileStream.Length);
//释放文件读取流
fileStream.Close();
fileStream.Dispose();
fileStream = null;
//创建Texture
Texture2D texture = new Texture2D(0, 0);
texture.LoadImage(bytes);
return texture;
}
/// <summary>
/// 获取文件:图片批量读取
/// </summary>
/// <param name="Paths">路径集合</param>
/// <returns>return : 图片集合</returns>
static public List<Texture2D> GetFile_Texture2D(List<string> Paths)
{
List<Texture2D> Texture2Ds = new List<Texture2D>();
foreach (string Path in Paths)
{
Texture2Ds.Add(GetFile_Texture2D(Path));
}
return Texture2Ds;
}
/// <summary>
/// 获取文件:图片批量读取(后缀过滤)
/// </summary>
/// <param name="Paths">路径集合</param>
/// <returns>return : 图片集合</returns>
static public List<Texture2D> GetFile_Texture2D(string Path, string types)
{
return GetFile_Texture2D(GetPaths_File(Path, types));
}
/// <summary>
/// 获取文件:图片批量读取(后缀集合过滤)
/// </summary>
/// <param name="Paths">路径集合</param>
/// <returns>return : 图片集合</returns>
static public List<Texture2D> GetFile_Texture2D(string Path, string[] types)
{
return GetFile_Texture2D(GetPaths_File(Path, types));
}
/// <summary>
/// 获取文件:精灵图片读取
/// </summary>
/// <param name="Path">路径</param>
/// <returns>return : 精灵图片</returns>
static public Sprite GetFile_Sprite(string Path)
{
Texture2D texture = GetFile_Texture2D(Path);
//创建Sprite
Sprite sprite = Sprite.Create(texture, new Rect(0, 0, texture.width, texture.height), Vector2.zero);
return sprite;
}
/// <summary>
/// 获取文件:精灵图片批量读取
/// </summary>
/// <param name="Paths">路径集合</param>
/// <returns>return : 精灵图片集合</returns>
static public List<Sprite> GetFile_Sprite(List<string> Paths)
{
List<Sprite> Sprites = new List<Sprite>();
foreach (string Path in Paths)
{
Sprites.Add(GetFile_Sprite(Path));
}
return Sprites;
}
/// <summary>
/// 获取文件:精灵图片批量读取(后缀过滤)
/// </summary>
/// <param name="Paths">路径集合</param>
/// <returns>return : 精灵图片集合</returns>
static public List<Sprite> GetFile_Sprite(string Path, string type)
{
return GetFile_Sprite(GetPaths_File(Path, type));
}
/// <summary>
/// 获取文件:精灵图片批量读取(后缀集合过滤)
/// </summary>
/// <param name="Paths">路径集合</param>
/// <returns>return : 精灵图片集合</returns>
static public List<Sprite> GetFile_Sprite(string Path, string[] types)
{
return GetFile_Sprite(GetPaths_File(Path, types));
}
/// <summary>
/// 乱码转换:用于解决LitJson把类转换成string时出现的乱码
/// </summary>
/// <param name="source">乱码字符串</param>
/// <returns>正常字符串</returns>
static public string String_Conversion(string source)
{
return new Regex(@"\\u([0-9A-F]{4})", RegexOptions.IgnoreCase)
.Replace(source, x => string.Empty + Convert.ToChar(Convert.ToUInt16(x.Result("$1"), 16)));
}
/// <summary>
/// 将对象转换成json(封装LitJson)
/// </summary>
/// <param name="obj">实例化的对象</param>
/// <returns>return : Json字符串</returns>
static public string Json_ToJson(object obj)
{
return String_Conversion(JsonMapper.ToJson(obj));
}
/// <summary>
/// 将json转换成对象(封装LitJson)
/// </summary>
/// <typeparam name="T">类型</typeparam>
/// <param name="json">Json字符串</param>
/// <returns>return : 实例化的对象</returns>
static public T Json_ToObject<T>(string json)
{
return JsonMapper.ToObject<T>(json);
}
/// <summary>
/// 将json转换成对象(封装LitJson)
/// </summary>
/// <param name="json">Json字符串</param>
/// <returns>return : 实例化的对象数据</returns>
static public JsonData Json_ToObject(string json)
{
return JsonMapper.ToObject(json);
}
/// <summary>
/// 判断字符串是否为json格式
/// </summary>
/// <param name="json">要判断的json字符串</param>
/// <returns>return : bool</returns>
static public bool If_JsonString(string json)
{
try
{
JsonMapper.ToObject<object>(json);
return true;
}
catch
{
return false;
}
}
/// <summary>
/// 获取文件: 把Json文件变成类
/// </summary>
/// <typeparam name="T">类型</typeparam>
/// <param name="Path">文件路径</param>
/// <returns>return : 返回类</returns>
static public T GetFile_JsonObject<T>(string Path)
{
string str = File.ReadAllText(Path);//读取文件所有内容
return Json_ToObject<T>(str);//json变成类
}
/// <summary>
/// 获取文件: 把Json文件变成json数据类
/// </summary>
/// <param name="Path">文件路径</param>
/// <returns>return : 返回类数据</returns>
static public JsonData GetFile_JsonObject(string Path)
{
string str = File.ReadAllText(Path);//读取文件所有内容
return Json_ToObject(str);//json变成类
}
/// <summary>
/// 写入文件:把类变成json文件
/// </summary>
/// <typeparam name="T">类型</typeparam>
/// <param name="Object">传入类</param>
/// <param name="Path">文件路径</param>
static public void SetFile_JsonObject<T>(T Object, string Path)
{
string Folder = Path.Substring(0, Path.LastIndexOf('/'));//去除文件名
Directory.CreateDirectory(Folder);//如果文件夹不存在就创建它
File.WriteAllText(Path, Json_ToJson(Object));//创建新文件
}
/// <summary>
/// 写入文件:把类变成json文件(缩进格式)
/// </summary>
/// <typeparam name="T">类型</typeparam>
/// <param name="Object">传入类</param>
/// <param name="Path">文件路径</param>
static public void SetFile_JsonObject_Format<T>(T Object, string Path)
{
string Folder = Path.Substring(0, Path.LastIndexOf('/'));//去除文件名
Directory.CreateDirectory(Folder);//如果文件夹不存在就创建它
File.WriteAllText(Path, Json_StringFormat(Json_ToJson(Object)));//创建新文件
}
/// <summary>
/// 格式转换:将Json缩进整理,用于查看
/// </summary>
/// <param name="sourceJson">源Json字符串</param>
/// <returns>return : 整理后的Json字符串</returns>
static public string Json_StringFormat(string sourceJson)
{
sourceJson += " ";
int itap = 0;
string newjson = "";
for (int i = 0; i < sourceJson.Length - 1; i++)
{
if (sourceJson[i] == '{' || sourceJson[i] == '[')
{
itap++;
newjson += sourceJson[i] + "\n";
for (int a = 0; a < itap; a++) { newjson += "\t"; }
}
else if ((sourceJson[i] == '}' || sourceJson[i] == ']'))
{
itap--;
newjson += "\n";
for (int a = 0; a < itap; a++) { newjson += "\t"; }
newjson += sourceJson[i] + "" + ((sourceJson[i + 1] == ',') ? "," : "") + "\n";
if (sourceJson[i + 1] == ',') i++;
for (int a = 0; a < itap; a++) { newjson += "\t"; }
}
else if (sourceJson[i] != '}' && sourceJson[i] != ']' && sourceJson[i + 1] == ',')
{
newjson += sourceJson[i] + "" + sourceJson[i + 1] + "\n";
i++;
for (int a = 0; a < itap; a++) { newjson += "\t"; }
}
else
{
newjson += sourceJson[i];
}
}
return newjson;
}
/// <summary>
/// 将网址转换为二维码图片
/// </summary>
/// <param name="URL">网址</param>
/// <returns>return : 二维码图片</returns>
static public Texture2D GetUrl_QrcodeTexture2D(string URL)
{
Texture2D encoded = new Texture2D(256, 256);
var writer = new BarcodeWriter
{
Format = BarcodeFormat.QR_CODE,
Options = new QrCodeEncodingOptions
{
Height = encoded.height,
Width = encoded.width
}
};
encoded.SetPixels32(writer.Write(URL));
encoded.Apply();
return encoded;
}
/// <summary>
/// 将网址转换为二维码精灵图片
/// </summary>
/// <param name="URL">网址</param>
/// <returns>return : 二维码精灵图片</returns>
static public Sprite GetUrl_QrcodeSprite(string URL)
{
Texture2D encoded = GetUrl_QrcodeTexture2D(URL);
return Sprite.Create(encoded, new Rect(0, 0, encoded.width, encoded.height), Vector2.zero);
}
}
}