最近,在试着做一个Unity自动生成Ui的功能。
理论比较简单,通过拼接字符串生成脚本,都是Ok的,但为了更方便,就想顺便把文件路径也自动生成一下。即获取某个目录下所有预制体的文件目录。
于是就需要一个如题所示的方法。

代码如下:

     string prefabDir = "Assets/Resources/MyUI/View/";DirectoryInfo direction = new DirectoryInfo(prefabDir);//DirectoryInfo.GetFiles返回当前目录的文件列表      FileInfo[] files = direction.GetFiles("*", SearchOption.AllDirectories);for (int i = 0; i < files.Length; i++){if (!files[i].Name.EndsWith(".prefab")) continue;string prefabPath = files[i].Name.Split('.')[0];}

这个方法不难找,但我找到这个方法的时候比较好奇方法里填的参数 “*” 是什么东西,然后找了很多关于这个方法参数的描述。
参数

searchPattern
String

要与文件名匹配的搜索字符串。 此参数可以包含有效文本路径和通配符(* 和 ?)的组合,但不支持正则表达式。

searchOption
SearchOption

指定搜索操作是应仅包含当前目录还是应包含所有子目录的枚举值之一。
SearchOption是设置文件夹的。TopDirectoryOnly值检索当前文件夹。AllDirectories检索当前文件夹及子文件夹

虽然看了官方描述,但仍然不是很明白是什么意思。只知道是个字符串。然后继续搜关键字。

通配符

通配符是一种特殊语句,主要有星号(*)和问号(?),用来模糊搜索文件。当查找文件夹时,可以使用它来代替一个或多个真正字符;当不知道真正字符或者懒得输入完整名字时,常常使用通配符代替一个或多个真正的字符。 实际上用“*Not?pad”可以对应Notepad\MyNotepad【*可以代表任何字符串;?仅代表单个字符串,但此单字必须存在】;Notep[ao]d可以对应Notepad\Notepod【ao代表a与o里二选一】,其余以此类推。

这么联系起来就大概知道是什么意思了。大概就是用 “*” 代替了一些字符。但具体代替什么呢,如下:

searchPattern中允许使用以下通配符说明符。
通配符 说明

  • (星号) 零个或多个字符。
    ? (问号) 正好为零或一个字符。
    不保证返回的文件名的顺序;如果需要特定的排序顺序,请使用 Sort 方法。

允许使用通配符。 例如,searchPattern 字符串 “* .txt” 搜索扩展名为 “txt” 的所有文件名。 searchPattern 字符串 “s*” 搜索所有以字母 “s” 开头的文件名称。 如果没有文件,或者没有与 DirectoryInfo中的 searchPattern 字符串匹配的文件,则此方法将返回一个空数组。

备注

在 searchPattern 中使用星号通配符(例如 “* .txt”)时,匹配行为因指定文件扩展名的长度而异。 文件扩展名正好为三个字符的 searchPattern 返回扩展名为三个或更多字符的文件,其中前三个字符与 searchPattern中指定的文件扩展名相匹配。 文件扩展名为一个、两个或三个以上的字符的 searchPattern 仅返回扩展名正好与 searchPattern中指定的文件扩展名匹配的文件。 使用问号通配符时,此方法只返回与指定文件扩展名匹配的文件。 例如,如果一个目录中有两个文件,“file1” 和 “txtother”,则为 “file?” 的搜索模式。txt “仅返回第一个文件,而” file*.txt "的搜索模式返回这两个文件。

以上是对这个方法的搜索结果。
大概就是可以使用通配符加一些字符来达到定向搜索一些文件的方法。第一个参数是指搜索结果中包含参数1内容的文件。

完结撒花。

C#获取目录下所有文件的列表——最白话,手把手教你做系列。相关推荐

  1. 关于BaiduPCS-Go不能用问题解决,报错【获取目录下的文件列表 遇到错误, 远端服务器返回错误】

           BaiduPCS-Go不能使用报错:获取目录下的文件列表 遇到错误, 远端服务器返回错误, 代码: 4, 消息: No permissionto do this operation, 路 ...

  2. C/C++ 获取目录下的文件列表信息

    在C/C++编程时,需要获取目录下面的文件列表信息. 1.数据结构 struct dirent { long d_ino;                 /* inode number 索引节点号 ...

  3. python获取文件夹下文件_Python 获取目录下的文件列表与内容

    下面的python例子是列举用户目录下面的文件 import os import sys #info=os.getcwd() #listfile=os.listdir(os.getcwd()) inf ...

  4. java 递归获取目录下所有文件

    对于一个嵌套的目录,获取目录下所有的文件,可以使用一下两种方式: 1.递归方法: static List<String> ergodic(File file, List<String ...

  5. Golang获取目录下的文件及目录信息

    一.获取当前目录下的文件或目录信息(不包含多级子目录) func main() {pwd,_ := os.Getwd()//获取文件或目录相关信息fileInfoList,err := ioutil. ...

  6. Python 获取目录下的文件列表,并自然排序

    在实际的算法与程序开发中,经常需要面对的场景就是对同一目录内的文件进行批量操作.并且很多时候目录中的文件明明是有规律的,同时希望程序在进行处理时也是按照一定的顺序进行. 方法 1 >>&g ...

  7. Go 学习笔记(49)— Go 标准库之 io/ioutil(读写文件、获取目录下的文件和子目录、创建临时目录和文件)

    1. 简要概述 import "io/ioutil" 包 io/ioutil 实现一些 I/O 实用程序函数. 2. 相关函数 2.1 func ReadAll func Read ...

  8. php获取目录下所有文件及目录(多种方法)

    获取某目录下所有子文件和子目录 function getDirContent($path){if(!is_dir($path)){return false;}//readdir方法/* $dir = ...

  9. shell获取目录下所有文件夹的名称并输出

    获取指定目录/usr/下所有文件夹的名称并输出: shell代码: 1 #!/bin/bash 2 #方法一 3 dir=$(ls -l /usr/ |awk '/^d/ {print $NF}') ...

最新文章

  1. 先定一个小目标,自己封装个ajax
  2. App项目内存优化计划
  3. zz eclipse.ini内存设置
  4. android 上线apk,码云 Android apk 在线构建功能上线啦!
  5. 程序员数学基础【三、取模运算(取余运算功能重叠部分)】(Python版本)
  6. jquery页面滚动显示浮动菜单栏锚点定位效果
  7. 后端技术:SpringBoot配置热加载工具(devtools)笔记
  8. 迈思德物联网网关与施耐德SoMachine平台远程调试测试成功。
  9. js日期减去日期算出剩余的天数
  10. 俄罗斯方块游戏开发教程1:整体流程
  11. [unix] Unix 是简单的,你不需要成为一个天才或是计算机专家也能理解它!
  12. 抗饱和积分器 matlab,抗积分饱和
  13. 微信读书中总显示服务器错误,微信读书充值遇到问题怎么办 微信读书充值遇到问题解决方法...
  14. Rocketmq广播消费模式怎么扩展消费者
  15. 海水淡化三十年打磨一把反渗透膜“利剑”
  16. unity3d 批量替换模型材质的脚本 一键替换模型及子物体材质
  17. EtherCat主站与从站简介
  18. linuxprobe 正式开课
  19. DAO终极之问:去中心化组织归谁所有?
  20. PHS定位技术及业务应用研究(图)

热门文章

  1. Python爬取安居客新房信息
  2. CMW500 Bluetooth信令测试
  3. (Winserver 2019) Hyper-V的安装与使用教程
  4. Matlab:实现绘制启动超音速风洞的稳定条件(附完整源码)
  5. 如何在阿里云服务器构建discuz论坛(快速lamp架构)
  6. 基于光栅波导结构的 R ARMR 系统的 建模
  7. 易语言 服务端给客户端发弹窗信息源码
  8. 快手自动操作学习参考
  9. 一、FPGA Cyclone Ⅳ OV5640图像实时采集系统设计
  10. 四阶龙格库塔法-实现异步电机模型仿真