SDHK_Tool.Static.SS_File 用于Unity3d的资源文件读写类

目录

1.GetNames_File 获取文件名字

2.GetNames_File 获取文件名字(后缀过滤)

3.GetNames_File 获取文件名字(后缀集合过滤)

4.GetNames_Folder 获取文件夹名字

5.GetPaths_File 获取文件路径

6.GetPaths_File 获取文件路径(后缀过滤)

7.GetPaths_File 获取文件路径(后缀集合过滤)

8.GetPaths_Folder 获取文件夹路径

9.GetFile_Texture2D 获取文件:图片读取

10.GetFile_Texture2D 获取文件:图片批量读取

11.GetFile_Texture2D 获取文件:图片批量读取(后缀过滤)

12.GetFile_Texture2D 获取文件:图片批量读取(后缀集合过滤)

13.GetFile_Sprite 获取文件:精灵图片读取

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);
        }

    }

}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值