#region Environment

Windows 10

Unity 2019.4.16f1c1 LTS

VSCode 1.52

https://github.com/MirzkisD1Ex0/UnityTheGreat.git

#endregion

高清大图警告!

全文左对齐警告!

进行Unity开发时,多少会遇到一些需要从外部读取资源的情况。

如果资源预先打包在Resources中还好说,干干单单的Resource.Load();就能搞定。

但是碰上在后续维护时需要替换程序中某段视频的情况,很适合把视频置于StreamingAssets中。届时也用不着重打包一份程序,只需要把新的视频文件丢进StreamingAssets中替换一下就OK了。

有时想在Unity中显示正在播放的视频的文件名可能就要用到下面的方法。

获取指定<路径>下,全部指定<后缀名>的文件的<文件名>并将其储存于数组中。

// 案例演示内容为<获取StreamingAssets/VideoStroage下所有.mp4文件的文件名>

// 数组尺寸将根据路径下有多少符合条件的文件自动决定

放了两个样本视频,位于StreamingAssets/VideoStorage下。

我们接下来把这两个文件的名字存放在String数组中,以供后续使用。

新建一个C#脚本,红圈内是路径与文件的后缀名,可根据需要自行修改。

将脚本挂载于任意对象上,运行场景,数组将根据文件数量决定自己的长度,同时将文件名分别储存在数组中。

运行后将显示结果。

下面是代码,风格比较猖獗,大佬们请自行抽取核心内容,如果有疑问记得留言或联系我yo。

#region Code↓↓↓

using UnityEngine;
using System.IO;
/// <summary>
/// 获取某个目录下指定类型的文件名
/// </summary>
public class FileNameCapture : MonoBehaviour
{
    public string[] Files; // 储存文件名的数组
    private string fileStoragePath = Application.streamingAssetsPath + "/" + "VideoStorage"; // 文件路径
    private string fileSuffix = ".mp4"; // 文件后缀名
    private void Start()
    {
        GetFileName(fileStoragePath, fileSuffix, ref Files);
    }
    /// <summary>
    /// 获取路径下全部指定类型的文件名
    /// </summary>
    /// <param name="path">路径</param>
    /// <param name="suffix">后缀名</param>
    /// <param name="files">用以存储文件名的数组</param>
    private void GetFileName(string path, string suffix, ref string[] files)
    {
        if (!Directory.Exists(path)) // 如果路径不存在 // 返回 0
        {
            return;
        }
        DirectoryInfo directoryInfo = new DirectoryInfo(path); // 获取文件信息
        FileInfo[] fileInfos = directoryInfo.GetFiles("*", SearchOption.AllDirectories);
        #region 获取文件数组尺寸
        int arraySize = 0;
        for (int i = 0; i < fileInfos.Length; i++)
        {
            if (fileInfos[i].Name.EndsWith(fileSuffix))
            {
                arraySize++;
                continue;
            }
        }
        #endregion
        files = new string[arraySize]; // 新建数组
        #region 将符合要求的文件名存至数组
        int arrayIndex = 0;
        for (int i = 0; i < fileInfos.Length; i++)
        {
            if (fileInfos[i].Name.EndsWith(fileSuffix))
            {
                files[arrayIndex++] = fileInfos[i].Name; // 把符合要求的文件名存储至数组中
                continue;
            }
        }
        #endregion
        return;
    }
}

#endregion

#region Notes

博观而约取,厚积而薄发

本教程仅为抛砖引玉之用,希望能够借此给予寻求思路的开发者们一些收获。

如果文章中出现了语混乱序、错鳖字、缺少标点符号的情况还请见谅。

因为排Word的时候我有点困。

// 现在我的脑子里就像是有两头#964B00的三边面熊举着我的室友在一个梯形的麦片盒上跳舞一样混乱。

对了,记得来我的GitHub看看。

对了对了,加我微信,我们来聊天,qq1005410781(这真的不是QQ号)。

#endregion

<UnityTheGreat><001>获取指定目录下指定类型的所有文件的名称的更多相关文章

  1. delphi遍历指定目录下指定类型文件的函数

    遍历指定目录下指定类型文件的函数// ================================================================// 遍历某个文件夹下某种文件,/ ...

  2. Java基础知识强化之IO流笔记49:IO流练习之 复制指定目录下指定后缀名的文件并修改名称的案例

    1. 复制指定目录下指定后缀名的文件并修改名称的案例     需求:复制指定目录下的指定文件,并修改后缀名.  • 指定的文件是:.java文件.     • 指定的后缀名是:.jad     • 指 ...

  3. JAVA输出指定目录下的子目录和子文件

    题目:给定一个目录,要求输出这个目录下面的子目录和子文件 逻辑: 先判断给定的是不是一个合法的目录,如果不是,则提示给定错误 如果是目录,那么使用File.listFile()获得这个目录下文件名的数 ...

  4. linux 中 如何 搜索 指定目录 下 指定文件 的 指定内容

    开发时,经常遇到 全局查找某些代码 linux 中 如何 检索 某 目录下指定文件 的 指定内容如下: //.点为查找当前目录 下 的 所有 *.php 文件里 有 hello 的文件 find . ...

  5. 运维笔记--Linux查找指定目录下某段时间的文件

    查找指定目录下,60天之前的文件:find /mnt/xml_data -mtime +60 -name "*.xml" 找到并统计数量:find /mnt/xml_data -m ...

  6. [bash]查找指定目录下符合格式的txt文件

    需求: 查找指定目录下符合yyyy-MM-dd(-b)NNN.txt格式的文件,如“2020-03-22-b888.txt” 目标目录内容: [root@localhost bashs]# ll /r ...

  7. Java基础知识强化之IO流笔记10:File类输出指定目录下指定后缀名的文件名称案例(File类的文件过滤器方法改进list( FilenameFilter ff))

    1. 案例: 判断F盘下是否有后缀名为.jpg的文件,如果有的话,就输出这个文件名. 2. 案例代码如下: (1)思路是:先获取所有的文件和文件夹封装的对象,然后遍历的时候,依次判断,如果满足条件就输 ...

  8. windows 批处理删除指定目录下 指定类型 指定天数之前文件

    删除D:\test下5天前所有文件,如下: @echo offset SrcDir=D:\testset DaysAgo=5forfiles /p %SrcDir% /s /m *.* /d -%Da ...

  9. OpenCV代码提取:遍历指定目录下指定文件的实现

    前言 OpenCV 3.1之前的版本,在contrib目录下有提供遍历文件的函数,用起来比较方便.但是在最新的OpenCV 3.1版本给去除掉了.为了以后使用方便,这里将OpenCV 2.4.9中相关 ...

随机推荐

  1. Nginx实例

    一.反向代理 反向代理实例一 1.实现效果 打开浏览器,在浏览器地址栏输入地址www.pluto.com,跳转到 liunx 系统 tomcat 主页面中 2.准备工作 [1].安装tomcat [r ...

  2. .Net orm 开源项目 FreeSql 2.0.0(满意的答卷)

    写在开头 2018年11月头脑发热到今天,一晃已经两年,当初从舒服区走向一个巨大的坑,回头一看后背一凉. 两年时间从无到有,经历数不清的日夜奋斗(有人问花了多长时间投入,答案:全职x2 + 两年无休息 ...

  3. 吉他入门:攻克solo第七课(Randy Rhoads风格)

    本期文章,主要和大家分享一下Randy Rhoads的solo句子.相信很多精研电吉他的朋友都会听过这个一手把Ozzy Osbourne从离开黑色安息日乐队的深渊中捞出来的天才吉他手.如果你暂时不了解 ...

  4. 如何使用ABBYY FineReader 处理无法识别的字符?

    在识别PDF文档时,我们可能会遇到文档中存在多种语言.多种不同类型文字字符的情况.在ABBYY FineReader 15(Windows系统)OCR文字识别软件的默认语言数据下,可能无法识别PDF文 ...

  5. 脑对u盘不识别的解决方法 一看就会

    u盘可以说是我们日常生活中使用得较为频繁的移动硬盘了,它小巧轻便,便于携带,能够储存大量的文档.因为经常使用的关系,所以就会出现很多问题.比如电脑识别不了u盘怎么办? 接下来,小编想教大家几招面对u盘 ...

  6. FL studio系列教程(十四):如何在FL Studio播放列表中排列样式

    我们在FL Studio中做好了节奏样式后就可以在播放列表窗口中进行乐曲的编排了.刚接触这款软件的同学肯定会对如何编排比较陌生但也比较憧憬的,因为它是从一个窗口到另一个窗口中的操作.其实明白了这里的知 ...

  7. 【基于Puppeteer前端自动化框架】【二】PO模式,断言(如何更简便逻辑的写测试代码)

    一.概要 前面介绍了Puppeteer+jest+TypeScript做UI自动化,但是这知识基础的,我们实现自动化要考虑的很多,比如PO模式,比如配置文件,比如断言等等.下面就来一一实现我是怎么用p ...

  8. js控制某个div在页面加载完成5秒后隐藏

    <div id="k">测试</div><script>setTimeout("document.getElementById('k' ...

  9. 《图解TCP/IP》第四章

    <图解TCP/IP>第四章 4.1 IP 即网际协议 4.1.1 IP(IPv4.IPv6)相当于OSI参考模型中的第3层-网络层 4.1.2 数据链路层和网络层的关系: 数据链路层的主要 ...

  10. mysql undo+redo+binlog

    rt 数据库事务开始之前,会将要修改的记录存放到UNdo日志里,当事务回滚时或数据库崩溃时,可以利用undo日志撤销未提交事务对数据库产生的影响. 逻辑日志,记录一个过程,提交后不会删除.delete ...