Example #1
0
        public static void Load()
        {
            var time = FileManager.GetTime();

            if (FileManager.Exists("Temp/FileManager.data"))
            {
                int    mode      = 0;
                string extension = "";
                string lastPath  = "";
                var    lines     = File.ReadAllLines("Temp/FileManager.data");
                for (int index = 0; index < lines.Length; ++index)
                {
                    var line = lines[index];
                    if (line.Contains("[Files]"))
                    {
                        mode = 1;
                    }
                    else if (line.Contains("[Folders]"))
                    {
                        mode = 2;
                    }
                    else if (line.StartsWith("("))
                    {
                        extension = line.Parse("(", ")");
                    }
                    else if (line.StartsWith("="))
                    {
                        lastPath = line.Remove("=").Replace("$", FileManager.path);
                    }
                    else if (line.StartsWith("+"))
                    {
                        lastPath += line.Remove("+");
                    }
                    else
                    {
                        var fileData = new FileData();
                        fileData.directory = lastPath;
                        fileData.name      = line;
                        if (mode == 1)
                        {
                            fileData.fullName  = fileData.name + "." + extension;
                            fileData.path      = fileData.directory + "/" + fileData.fullName;
                            fileData.extension = extension;
                        }
                        else if (mode == 2)
                        {
                            fileData.path     = fileData.directory + "/" + fileData.name;
                            fileData.isFolder = true;
                        }
                        FileManager.BuildCache(fileData);
                    }
                }
            }
            if (FileManager.clock)
            {
                Debug.Log("[FileManager] : Load cache complete -- " + (FileManager.GetTime() - time) + " seconds.");
            }
        }
Example #2
0
        public static FileData Create(string path)
        {
            path = Path.GetFullPath(path).Replace("\\", "/");
            var data = new FileData(path);

            if (!data.name.IsEmpty())
            {
                File.Create(path).Dispose();
            }
            else
            {
                data.isFolder = true;
                Directory.CreateDirectory(path);
            }
            FileManager.BuildCache(data);
            return(data);
        }
Example #3
0
        public static void Load()
        {
            var time      = FileManager.GetTime();
            var cachePath = Application.isEditor ? "Temp/FileManager.data" : FileManager.root + "/FileManager.data";

            if (FileManager.Exists(cachePath))
            {
                string extension = "";
                string lastPath  = "";
                var    lines     = File.ReadAllLines(cachePath);
                for (int index = 0; index < lines.Length; ++index)
                {
                    var line = lines[index];
                    if (line.StartsWith("("))
                    {
                        extension = line.Parse("(", ")");
                    }
                    else if (line.StartsWith("=") || line.StartsWith("+"))
                    {
                        lastPath = line.StartsWith("=") ? line.TrimLeft("=").Replace("$", FileManager.root) : lastPath + line.TrimLeft("+");
                        var folderData = new FileData();
                        folderData.name      = lastPath.GetPathTerm();
                        folderData.directory = lastPath.GetDirectory();
                        folderData.path      = lastPath;
                        folderData.isFolder  = true;
                        FileManager.BuildCache(folderData);
                    }
                    else
                    {
                        var fileData = new FileData();
                        fileData.directory = lastPath;
                        fileData.name      = line;
                        fileData.fullName  = fileData.name + "." + extension;
                        fileData.path      = fileData.directory + "/" + fileData.fullName;
                        fileData.extension = extension;
                        FileManager.BuildCache(fileData);
                    }
                }
            }
            if (FileManager.clock)
            {
                Debug.Log("[FileManager] : Load cache complete -- " + (FileManager.GetTime() - time) + " seconds.");
            }
        }
Example #4
0
 public static void Scan(string directory, bool deep = false)
 {
     if (!Directory.Exists(directory))
     {
         return;
     }
     string[] fileEntries   = Directory.GetFiles(directory);
     string[] folderEntries = Directory.GetDirectories(directory);
     if (!FileManager.monitors.ContainsKey(directory))
     {
         FileManager.monitors[directory] = new FileMonitor(directory);
     }
     FileManager.filesByPath.AddNew(directory);
     foreach (string filePath in fileEntries)
     {
         if (filePath.ContainsAny(".meta", "unitytemp", "unitylock"))
         {
             continue;
         }
         var path = filePath.Replace("\\", "/");
         FileManager.BuildCache(new FileData(path));
     }
     foreach (string folderPath in folderEntries)
     {
         if (folderPath.ContainsAny(".svn", "~"))
         {
             continue;
         }
         var path = folderPath.Replace("\\", "/");
         FileManager.BuildCache(new FileData(path, true));
         if (deep)
         {
             FileManager.Scan(path, true);
         }
     }
 }