unity3d 根据指定的Assets下的文件夹路径 返回这个路径下的所有文件名

using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using System.IO;
<pre class="csharp" name="code">	public static List<string> nameArray = new List<string>();

	/// <summary>
	/// 根据指定的 Assets下的文件路径 返回这个路径下的所有文件名//
	/// </summary>
	/// <returns>文件名数组</returns>
	/// <param name="path">Assets下“一"级路径</param>
	/// <param name="pattern">筛选文件后缀名的条件.</param>
	/// <typeparam name="T">函数模板的类型名t</typeparam>
	void GetObjectNameToArray<T>(string path, string pattern)
	{
		string objPath = Application.dataPath + "/" + path;
		string[] directoryEntries;
		try
		{
			//返回指定的目录中文件和子目录的名称的数组或空数组
			directoryEntries = System.IO.Directory.GetFileSystemEntries(objPath);   

			for(int i = 0; i < directoryEntries.Length ; i ++){
				string p = directoryEntries[i];
				//得到要求目录下的文件或者文件夹(一级的)//
				string[] tempPaths = StringExtention.SplitWithString(p,"/Assets/"+path+"\\"); 

				//tempPaths 分割后的不可能为空,只要directoryEntries不为空//
				if(tempPaths[1].EndsWith(".meta"))
					continue;
				string[] pathSplit = StringExtention.SplitWithString(tempPaths[1],".");
				//文件
				if(pathSplit.Length > 1)
				{
					nameArray.Add(pathSplit[0]);
				}
				//遍历子目录下 递归吧!
				else
				{
					GetObjectNameToArray<T> (path+"/"+pathSplit[0], "pattern");
						continue;
				}
			}
		}
		catch (System.IO.DirectoryNotFoundException)
		{
			Debug.Log("The path encapsulated in the " + objPath + "Directory object does not exist.");
		}
	}  

	void Start () {
		//TextAsset[] texts = LoadAsset<TextAsset> ("/CreateScriptDialog/Editor", "cs");
		//GetObjectNameToArray<string> ("uSequencer/Example Scenes", "xxx");   //可以实现嵌套遍历
		GetObjectNameToArray<string> ("uSequencer", "xxx");   //可以实现嵌套遍历
		foreach (string str in nameArray) {
			Debug.Log(str);
		}
	}
 
<pre class="csharp" name="code">/// <summary>
/// 自定义的字符串分割的方法
/// </summary>
public class StringExtention {  

	public static string[] SplitWithString(string sourceString, string splitString){
		string tempSourceString = sourceString;
		List<string> arrayList = new List<string>();
		string s = string.Empty;
		while (sourceString.IndexOf(splitString) > -1)  //分割
		{
			s = sourceString.Substring(0, sourceString.IndexOf(splitString));
			sourceString = sourceString.Substring(sourceString.IndexOf(splitString) + splitString.Length);
			arrayList.Add(s);
		}
		arrayList.Add(sourceString);
		return arrayList.ToArray();
	}
} 
				
时间: 2024-08-01 03:46:00

unity3d 根据指定的Assets下的文件夹路径 返回这个路径下的所有文件名的相关文章

虚拟机中如何Linux系统如何访问PC硬盘中的文件(如何将windows下的文件夹挂载到linux虚拟机下)

这段时间决定学习嵌入式,变打算安装个Linux系统先熟悉一下Linux系统的使用,但自己电脑上安装的win7系统又不想装双系统,一是闲麻烦,二是由于对Linux系统不熟悉担心会因为自己的误操作而损坏系统.所以决定安装一个虚拟机,简单粗暴,要是系统不小心死了直接关掉重启便是.但是现实往往是,很多事情表面上看起来很简单,实际上暗藏了很多问题.其中问题之一就是想在Linux上安装软件,但安装包在自己电脑的硬盘上,而在虚拟机中完全不知道怎么访问硬盘中的文件,所以就各种上网找资料,试过一些网上的方法但都貌

unity3d 依据指定的Assets下的目录路径 返回这个路径下的全部文件名称

using UnityEngine; using System.Collections; using System.Collections.Generic; using System.IO; <pre class="csharp" name="code"> public static List<string> nameArray = new List<string>(); /// <summary> /// 依据指定的

JAVA之IO技术-获取指定目录下的文件夹和文件的File对象或是字符串名称。

package ioTest.io3; /* * 获取指定目录下的文件夹和文件的File对象或是字符串名称. * 也可以通过filter获取指定的文件夹或者指定类型的文件 * 这里面需要做一个总结,如何利用jdk的源码去理解不熟悉的方法的应用. */ import java.io.File; import java.io.FileFilter; import java.io.FilenameFilter; public class FileDemo2 { public static void m

Java扫描指定文件路径下的文件并且递归扫描其子目录下的所有文件

本文主要实现了扫描指定文件路径下的文件,递归扫描其子目录下的所有文件信息,示例文件为: 要求将后缀为.dat的文件夹信息也写入到数据库中,然后将.chk文件解析,将文件中对应的内容读出来写入到数据库,对应类为ChkFileParseFactroy,本文文件发现代码为: 1 package com.src.service.impl; 2 3 import java.io.File; 4 import java.net.InetAddress; 5 import java.net.NetworkIn

用python查找在指定目录下特定文件夹下的指定文件

本代码是在python2.*上边所写. 功能:在指定目录下查找特定文件夹下的特定文件. 实例:查找在packages目录下文件夹名为values下的strings.xml文件 #!/usr/bin/env python import os def walk_dir(path): filter_file_name = 'strings.xml' for root, dirs, files in os.walk(path): for dir_item in dirs: if dir_item ==

C#遍历指定路径下的文件夹

通过指定路径访问路径下的文件,在C#的开发中主要利用了Directory类和DirectoryInfo类,简要介绍Directory类中的成员:命名空间 System.IO 命名空间 1.CreateDirectory,已重载,用于创建指定路径下的所有目录: 2.Delete,删除指定目录: 3.Exists,确定给定目录是否引用磁盘现有目录:说白点就是判断路径是否存在: 4.GetCreationTime,获取目录的创建时间和日期: 4.GetCurrentDirectory,获取应用程序的当

linux根目录下各文件夹的作用

linux下的文件结构,看看每个文件夹都是干吗用的 /bin 二进制可执行命令 /dev 设备特殊文件 /etc 系统管理和配置文件 /etc/rc.d 启动的配置文件和脚本 /home 用户主目录的基点,比如用户user的主目录就是/home/user,可以用~user表示 /lib 标准程序设计库,又叫动态链接共享库,作用类似windows里的.dll文件 /sbin 系统管理命令,这里存放的是系统管理员使用的管理程序 /tmp 公用的临时文件存储点 /root 系统管理员的主目录(呵呵,特

Linux下的文件夹创建命令使用实践

[文章摘要] 本文以实际的C源程序为样例,介绍了Linux下的文件夹创建命令(mkdir)的用法.为相关开发工作的开展提供了故意的參考. [关键词] C语言  Linux  文件夹创建  makefile  开发 一.mkdir命令简单介绍 mkdir命令用来创建指定名称的文件夹,其命令格式为:mkdir [选项] 文件夹... 当中,[选项]能够是"-m"."-p"或"-v". 此外,文件夹名是区分大写和小写的. 二.本程序流程 本文中的程序用

XP下,文件夹添加右键命令行

原文:XP下,文件夹添加右键命令行 总共有3种方式: --------------------1-------------------------------------------------------- 很多人都很喜欢在CMD命令行下来操作计算机,我也是其中之一.如何快速打开CMD并且定位到指定的路径呢?很多优化软件(比如优化大师)都提供了往右键菜单中加入“CMD快速通道”的功能,当右键点击文件夹时,就打开CMD并定位到该文件夹.网上也有修改注册表来实现的,其实根本不用这么麻烦. 打开“我