Unity C# 文件夹的创建,与文件的保存创建和读取

Unity C# 文件夹的创建,与文件的保存创建和读取

代码

using System;
using System.Collections;
using System.IO;
using UnityEditor;
using UnityEngine;

public class CreateFiles
{
    /// <summary>
    /// 创建文件夹
    /// </summary>
    [MenuItem("Tools/CreateFolder")]//需要引入命名空间using UnityEditor(Unity有关)
    public static void CreateFolder()
    {
        string path = Application.dataPath + "/";//需要引入命名空间 using UnityEngine(Unity有关)
        Directory.CreateDirectory(path + "Assets");//需要引入命名空间 using System.Io
        Directory.CreateDirectory(path + "Plugins");
        Directory.CreateDirectory(path + "Resources");
        Directory.CreateDirectory(path + "Scenes");
        Directory.CreateDirectory(path + "Scripts");
        Directory.CreateDirectory(path + "StreamingAssets");
        Directory.CreateDirectory(path + "Editor");
    }

    /// <summary>
    /// 文件的创建,写入
    /// </summary>
    /// <param name="path">文件路径</param>
    /// <param name="name">文件名</param>
    /// <param name="info">信息</param>
    public static void Createfile(string path, string name, string info)
    {
        StreamWriter sw;//流信息
        FileInfo t = new FileInfo(path + "//" + name);
        if (!t.Exists)
        {//判断文件是否存在
            sw = t.CreateText();//不存在,创建
        }
        else
        {
            sw = t.AppendText();//存在,则打开
        }
        sw.WriteLine(info);//以行的形式写入信息
        sw.Close();//关闭流
        sw.Dispose();//销毁流
    }

    /// <summary>
    /// 文件的读取
    /// </summary>
    /// <param name="path">文件路径</param>
    /// <param name="name">文件名</param>
    /// <returns>文件数据</returns>
    public static ArrayList LoadFile(string path, string name)
    {
        StreamReader sr = null;//文件流
        try
        {//通过路径和文件名读取文件
            sr = File.OpenText(path + "//" + name);
        }
        catch (Exception ex)//需要引入命名空间 using System
        {
            Debug.LogError(ex.Message);
            return null;
        }
        string line;
        ArrayList arrlist = new ArrayList();//需要引入命名空间 using System.Collections
        while ((line = sr.ReadLine()) != null)
        {//读取每一行加入到ArrayList中
            arrlist.Add(line);
        }
        sr.Close();
        sr.Dispose();
        return arrlist;
    }
}

解释

  1. 第一个函数是用于动态创建文件夹。代码中的创建的例子文件夹,是Unity中常会用到的(Assets,Resources,Plugins,Editor,StreamigAssets,Scene,Scripts,Sprite等),手动创建太过繁琐,使用这个代码动态创建会更加的方便。
  2. 第二个函数用于创建保存文件数据到对应路径中的文件上。
  3. 第三个函数用于读取对应路径中的文件中的数据。
  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
要让unity3d读取文件夹下所有mp3文件,我们可以通过C#脚本来实现。首先,我们需要获取指定文件夹路径下的所有文件,然后筛选出mp3文件并进行读取。 首先,我们可以使用Directory类的GetFiles方法来获取指定文件夹下的所有文件路径,然后使用foreach循环逐个遍历这些文件路径。 在遍历过程,可以利用Path类的GetExtension方法来判断文件的扩展名是否为".mp3",如果是的话,就可以使用Unity的AudioSource来进行音频文件读取和播放。 具体的代码实现如下: ```csharp using System.IO; using UnityEngine; public class ReadMP3Files : MonoBehaviour { public string folderPath; void Start() { string[] files = Directory.GetFiles(folderPath); foreach (string file in files) { if (Path.GetExtension(file).Equals(".mp3", System.StringComparison.InvariantCultureIgnoreCase)) { StartCoroutine(LoadAndPlayMP3(file)); } } } IEnumerator LoadAndPlayMP3(string filePath) { WWW www = new WWW("file://" + filePath); yield return www; AudioSource audioSource = gameObject.AddComponent<AudioSource>(); audioSource.clip = www.GetAudioClip(false, true, AudioType.MPEG); audioSource.Play(); } } ``` 在这段代码,我们首先通过Directory类的GetFiles方法获取了指定文件夹下的所有文件路径,然后利用Path类的GetExtension方法判断文件扩展名是否为".mp3",如果是的话就使用WWW类加载音频文件,并通过AudioSource组件进行播放。同时,我们也可以通过修改folderPath的值来指定不同的文件夹路径。 这样,就可以让unity3d读取文件夹下所有mp3文件并进行播放了。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天富儿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值