예제 #1
0
        public static LipsyncSequenceDatabase BuildDatabase(DirectoryInfo directory)
        {
            LipsyncSequenceDatabase database = ScriptableObject.CreateInstance <LipsyncSequenceDatabase>();

            DirectoryWalkCallback callback = filePath =>
            {
                string[] lines = File.ReadAllLines(filePath.FullName);
                string   name  = filePath.Name.Replace(LipsyncAutomation.fileEnding, "");

                LipsyncSequence sequence = LipsyncSequenceFactory.BuildSequence(lines, name);

                database.sequences.Add(sequence);
            };

            LipsyncFileUtility.WalkDirectoryRecursively(directory, ".dat", callback);
            return(database);
        }
예제 #2
0
        public static void WalkDirectoryRecursively(DirectoryInfo root, string filetype, DirectoryWalkCallback callback )
        {
            System.IO.FileInfo[] files = null;
            System.IO.DirectoryInfo[] subDirs = null;

            // First, process all the files directly under this folder
            try
            {
                files = root.GetFiles("*" + filetype);
            }
            // This is thrown if even one of the files requires permissions greater
            // than the application provides.
            catch (IOException e)
            {
                // This code just writes out the message and continues to recurse.
                // You may decide to do something different here. For example, you
                // can try to elevate your privileges and access the file again.
                Debug.LogError(e.Message);
            }

            if (files != null)
            {

                for(int i = 0 ; i < files.Length ; i++)
                {
                    System.IO.FileInfo file = files[i];

                    if(EditorUtility.DisplayCancelableProgressBar("walk directory", file.Name, i / (float)files.Length))
                        return;

                    callback( file );
                }

                EditorUtility.ClearProgressBar();

                // Now find all the subdirectories under this directory.
                subDirs = root.GetDirectories();

                foreach (System.IO.DirectoryInfo dirInfo in subDirs)
                {
                    // Recursive call for each subdirectory.
                    WalkDirectoryRecursively(dirInfo, filetype, callback);
                }
            }
        }
예제 #3
0
        public static void WalkDirectoryRecursively(DirectoryInfo root, string filetype, DirectoryWalkCallback callback)
        {
            System.IO.FileInfo[]      files   = null;
            System.IO.DirectoryInfo[] subDirs = null;

            // First, process all the files directly under this folder
            try
            {
                files = root.GetFiles("*" + filetype);
            }
            // This is thrown if even one of the files requires permissions greater
            // than the application provides.
            catch (IOException e)
            {
                // This code just writes out the message and continues to recurse.
                // You may decide to do something different here. For example, you
                // can try to elevate your privileges and access the file again.
                Debug.LogError(e.Message);
            }

            if (files != null)
            {
                for (int i = 0; i < files.Length; i++)
                {
                    System.IO.FileInfo file = files[i];

                    if (EditorUtility.DisplayCancelableProgressBar("walk directory", file.Name, i / (float)files.Length))
                    {
                        return;
                    }

                    callback(file);
                }

                EditorUtility.ClearProgressBar();

                // Now find all the subdirectories under this directory.
                subDirs = root.GetDirectories();

                foreach (System.IO.DirectoryInfo dirInfo in subDirs)
                {
                    // Recursive call for each subdirectory.
                    WalkDirectoryRecursively(dirInfo, filetype, callback);
                }
            }
        }