Unity3D 扫描全盘获取文件路径


扫描全盘获取文件路径,这一个简单的东西害我做了两天,刚开始先看Resources,接着看AssetBundle和WWW,后面我惊奇的看到EditorUtility.OpenFilePanel ,

但是还是不对,最后高手们说c#可以解决这个问题,我就去看c#,先看了file类,后来看到Directory类,终于明白,里面

有Directory.GetFiles(path:String),Directory.GetFiles(path:String,pattern:String)和Directory.GetFiles(path:String,pattern:String,SearchOption)

三种获取路径中的文件路径的方法,第一种和第二种方法都可以运行,但第三种方法可以在电脑上(除了系统盘)以外的盘达到效果,在手机上就不能运行咯~~~~,怎么办了?

没办法,c#中还有一个Directory.GetDirectories(path:String)获取路径中子目录的方法,所以我写了一个递归函数,虽然在系统盘还是不行,但在手机就达到了我想要的效果。

  1. import System.IO;  
  2.   
  3. import System.Collections;  
  4.   
  5. var www : WWW;  
  6.   
  7. var files:String[];  
  8.   
  9. var file:ArrayList;  
  10.   
  11. function Start () {  
  12.   
  13.     file=new ArrayList();  
  14.   
  15.     he("/sdcard/","*.png",file);  
  16.   
  17.     print(file.Count);  
  18.   
  19. }  
  20.   
  21. function Update(){  
  22.   
  23.    if(Input.GetKey(KeyCode.Escape)){  
  24.   
  25.       Application.Quit();  
  26.   
  27.    }  
  28.   
  29. }  
  30.   
  31. function OnGUI(){  
  32.   
  33.    GUI.Label(Rect(100,100,100,100),file.Count+"----"+files.Length);  
  34.   
  35. }  
  36.   
  37.   
  38.   
  39.   
  40.   
  41.   
  42.   
  43. function he(path:String,pattern:String,al:ArrayList){//如果al你用String[]的话,会报错,说你的数组不够大,所以我用ArrayList   
  44.   
  45.  if(path!=null){       
  46.   
  47.    var f1:String[]=Directory.GetFiles(path,pattern);  
  48.   
  49.    for(var f11:String in f1){  
  50.   
  51.      al.Add(f11);  
  52.   
  53.    }  
  54.   
  55.    var d1:String[]=Directory.GetDirectories(path);  
  56.   
  57.    for(var d11:String in d1){  
  58.   
  59.       var f2:String[]=Directory.GetFiles(d11,pattern);        
  60.   
  61.         for(var f22:String in f2){  
  62.   
  63.         al.Add(f22);  
  64.   
  65.         }  
  66.   
  67.         he(d11,pattern,al);            
  68.   
  69.     }     
  70.   
  71.   }   
  72.   
  73. }  

unity3D真好~~~~,尽管我习惯用js写代码了,但是所有c#的函数在js里面都可以用,呵呵~~~~,msdn也很好,谢谢你们~~~~~

相关内容