读取Unity里的文件

最近工作中遇到需要封装一个音频管理系统,需要把所有音频资源写成一个枚举类型,但是总不能一个一个的复制粘贴吧....所以写了这样一个读取配置文件的脚步,大家共同学习.

把脚步放到Editor文件夹下 , 点击即可自动生成需要的文件名了;

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
using System.IO;
public class ReaderMusicName
{
    [MenuItem("Shuai/一键生成音频配置文件")]
    private static void GetMusicName()

    {

       // 配置你需要的遍历的文件夹

        string outPath = Application.dataPath + "/" + "Bundle/game0021/Resources/Music";


        DirectoryInfo directoryInfo = new DirectoryInfo(outPath);
        DirectoryInfo[] musicDirectoyis = directoryInfo.GetDirectories();

        foreach (var item in musicDirectoyis)
        {
            string str = outPath + "/" + item.Name;
            DirectoryInfo dt = new DirectoryInfo(str);
            if (dt==null)
            {
                Debug.Log("没有该子文件夹");
                return;
            }
            else
            {
                Dictionary<string, string> fileDic = new Dictionary<string, string>();

                int index = str.LastIndexOf('/');

                string sceneName = str.Substring(index + 1);

                OnMusicFileSystemInfo(dt, fileDic);
                OnWriteMusicFile(sceneName,fileDic);
            }


        }


        AssetDatabase.Refresh();
        Debug.Log("音频配置文件生成成功,牛逼!");


    }
 
    private static void OnMusicFileSystemInfo(FileSystemInfo fileSystem , Dictionary<string,string> fileDic)
    {
        if (!fileSystem.Exists)
        {
            Debug.Log("该文件不存在");
            return;
        }


        DirectoryInfo directortIn = fileSystem as DirectoryInfo;
        FileSystemInfo[] fileSystemInfos =  directortIn.GetFileSystemInfos();


        foreach (var item in fileSystemInfos)
        {
            FileInfo fileinfo = item as FileInfo;


            if (fileinfo != null)
            {
                if (fileinfo.Extension != ".meta")
                {
                    fileDic.Add(fileinfo.Name,directortIn.FullName);
                }              
                                        
            }
            else
            {
                OnMusicFileSystemInfo(item, fileDic);
            }
        }
    }


    private static void OnWriteMusicFile(string sceneName, Dictionary<string,string> fileDic)
    {
        string path = Application.dataPath + "/" + sceneName + ".txt";


        using (FileStream fs = new FileStream(path, FileMode.OpenOrCreate, FileAccess.Write))
        {
            using (StreamWriter sw = new StreamWriter(fs))
            {
                // sw.WriteLine(fileDic.Count);


                foreach (var item in fileDic)
                {
                    sw.WriteLine(item.Key.Split('.')[0].ToString() + ",");
                }
            }
        }

    }

}


此时点击如图按钮



就会出现需要的文件名了



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值