private IEnumerator GetVoiceDirectory(string cur_path, string nxt_path, int cur)
    {
        string        _path   = cur_path + nxt_path;
        DirectoryInfo dir     = new DirectoryInfo(_path);
        int           cur_idx = cur;

        foreach (DirectoryInfo d in dir.GetDirectories())
        {
            string   tmp       = d.LastWriteTime.ToString();
            string[] lastWrite = tmp.Split(' ');
            VRDBController.VoiceDirectory_add(d.Name, lastWrite[0], ++idx, cur_idx);
            StartCoroutine(GetVoiceDirectory(_path, d.Name + "/", idx));
        }
        yield return(null);
    }
Esempio n. 2
0
    public IEnumerator CreateDirectory(string cur_path, string dir_name)
    {
        int cur_idx = -1;

        for (int i = 0; i < idxInfo.Count; ++i)
        {
            if (cur_idx < idxInfo[i])
            {
                cur_idx = idxInfo[i];
            }
        }
        idxInfo.Add(++cur_idx);
        if (!directoryString.ContainsKey(dir_name))
        {
            directoryString.Add(dir_name, cur_idx);
        }
        if (!directoryInteger.ContainsKey(cur_idx))
        {
            directoryInteger.Add(cur_idx, dir_name);
        }
        if (!directoryPoint.ContainsKey(cur_idx))
        {
            directoryPoint.Add(cur_idx, _now);
        }
        DirectoryInfo dir      = new DirectoryInfo(@"" + Static.STATIC.dir_path + "/Resources/Voice" + cur_path + "/" + dir_name);
        string        dir_time = dir.LastWriteTime.ToString();

        string[] lastWrite = dir_time.Split(' ');
        if (!directoryTime.ContainsKey(cur_idx))
        {
            Dictionary <string, string> ss = new Dictionary <string, string>();
            directoryTime.Add(cur_idx, ss);
        }
        if (!directoryTime[cur_idx].ContainsKey(dir_name))
        {
            directoryTime[cur_idx].Add(dir_name, lastWrite[0]);
        }
        directoryName.Add(dir_name);
        if (!directoryPath.ContainsKey(cur_idx))
        {
            directoryPath.Add(cur_idx, "." + cur_path + "/" + dir_name);
        }
        directoryPathIdx[_now].Add(cur_idx);

        // DB
        VRDBController.ConIn(Static.STATIC.dir_path + "/DataBase/VoiceDirectory");
        VRDBController.VoiceDirectory_add(dir_name, lastWrite[0], cur_idx, _now);
        Debug.Log("Name: " + dir_name + ", Time:" + lastWrite[0] + ", idx:" + cur_idx + ", prev_idx:" + _now);

        // 컨텐츠 생성
        Transform _parent     = _viewPort;
        Transform tmp_content = Instantiate(_content);

        if (!contentInfo.ContainsKey(cur_idx))
        {
            tmp_content.SetParent(_viewPort);
            tmp_content.name       = dir_name;
            tmp_content.localScale = new Vector3(1, 1, 1);
            tmp_content.GetComponent <RectTransform>().localPosition                = new Vector3(0, 0, 0);
            tmp_content.GetComponent <RectTransform>().offsetMax                    = new Vector2(0, 0);
            tmp_content.GetChild(0).GetComponent <VoiceDirectoryButton>()._key      = cur_idx;
            tmp_content.GetChild(0).GetComponent <VoiceDirectoryButton>()._prev_key = _now;
            tmp_content.gameObject.SetActive(false);
            contentInfo.Add(cur_idx, tmp_content);
        }

        // 버튼 생성
        _parent = contentInfo[_now];

        GameObject tmp_btn = Instantiate(_directorySampleBtn) as GameObject;

        tmp_btn.name = dir_name;
        tmp_btn.transform.SetParent(_parent);
        tmp_btn.transform.GetChild(0).GetComponent <Text>().text            = dir_name;
        tmp_btn.transform.GetChild(2).GetComponent <Text>().text            = directoryTime[cur_idx][dir_name];
        tmp_btn.transform.GetComponent <VoiceDirectoryButton>()._key        = cur_idx;
        tmp_btn.transform.GetComponent <VoiceDirectoryButton>()._prev_key   = _now;
        tmp_btn.transform.GetComponent <VoiceDirectoryButton>()._change_btn = false;
        tmp_btn.SetActive(true);
        tmp_btn.transform.localScale = new Vector3(0.9f, 0.9f, 1);
        string _lower = dir_name.ToLower();

        if (!_currentSearch._fileTable.ContainsKey(_now))
        {
            Dictionary <string, GameObject> sg = new Dictionary <string, GameObject>();
            _currentSearch._fileTable.Add(_now, sg);
        }
        if (!_currentSearch._fileTable[_now].ContainsKey(_lower))
        {
            tmp_btn      = Instantiate(_directorySampleBtn) as GameObject;
            tmp_btn.name = _lower;
            tmp_btn.transform.SetParent(_current_content);
            tmp_btn.transform.GetChild(0).GetComponent <Text>().text            = dir_name;
            tmp_btn.transform.GetChild(2).GetComponent <Text>().text            = directoryTime[cur_idx][dir_name];
            tmp_btn.transform.GetComponent <VoiceDirectoryButton>()._key        = cur_idx;
            tmp_btn.transform.GetComponent <VoiceDirectoryButton>()._prev_key   = _now;
            tmp_btn.transform.GetComponent <VoiceDirectoryButton>()._change_btn = false;
            tmp_btn.SetActive(false);
            tmp_btn.transform.localScale = new Vector3(0.9f, 0.9f, 1);
            _currentSearch._fileTable[_now].Add(_lower, tmp_btn);
        }
        if (!_allSearch._fileTable.ContainsKey(_lower))
        {
            _allSearch._fileTable[_lower] = new List <GameObject>();
        }
        tmp_btn      = Instantiate(_directorySampleBtn) as GameObject;
        tmp_btn.name = _lower;
        tmp_btn.transform.SetParent(_all_content);
        tmp_btn.transform.GetChild(0).GetComponent <Text>().text            = dir_name;
        tmp_btn.transform.GetChild(2).GetComponent <Text>().text            = directoryTime[cur_idx][dir_name];
        tmp_btn.transform.GetComponent <VoiceDirectoryButton>()._key        = cur_idx;
        tmp_btn.transform.GetComponent <VoiceDirectoryButton>()._prev_key   = _now;
        tmp_btn.transform.GetComponent <VoiceDirectoryButton>()._change_btn = false;
        tmp_btn.SetActive(false);
        tmp_btn.transform.localScale = new Vector3(0.9f, 0.9f, 1);
        _allSearch._fileTable[_lower].Add(tmp_btn);
        _allSearch.root.insert(_lower + '\0', 0);

        yield return(null);
    }
    public IEnumerator ClickedItem_Start()
    {
        _clickedItemPanel.SetActive(false);
        _basePanel.SetActive(false);
        _clickedItem = null;

        string        _path = dir_path + "/Database/";
        DirectoryInfo dir = new DirectoryInfo(_path);
        bool          _directory = false, _file = false;

        foreach (FileInfo file in dir.GetFiles())
        {
            if (file.Extension.ToLower().Equals(".sqlite"))
            {
                string[] fileName = file.Name.Split('.');

                if (fileName[0].Equals("VoiceDirectory"))
                {
                    _directory = true;
                }
                else if (fileName[0].Equals("VoiceFile"))
                {
                    _file = true;
                }
                if (_directory && _file)
                {
                    break;
                }
            }
        }

        _path = dir_path + "Resources/Voice/";
        dir   = new DirectoryInfo(_path);

        if (!_directory)
        {
            VRDBController.VoiceDirectory_Init();
            string   tmp       = dir.LastWriteTime.ToString();
            string[] lastWrite = tmp.Split(' ');
            VRDBController.VoiceDirectory_add(dir.Name, lastWrite[0], 0, 0);
            yield return(StartCoroutine(GetVoiceDirectory(dir_path + "/Resources/Voice/", "", 0)));

#if UNITY_EDITOR
            ImportAsset.NewImportAsset_File("Assets/DataBase/VoiceDirectory.sqlite");
#endif
        }
        else
        {
            VRDBController.ConIn(dir_path + "/DataBase/VoiceDirectory");
        }

        VRDBController.VoiceDirectory_Start();

        if (!_file)
        {
            VRDBController.VoiceFile_Init();
            yield return(StartCoroutine(GetVoiceFile(dir_path + "/Resources/Voice/", "Voice/", "")));

#if UNITY_EDITOR
            ImportAsset.NewImportAsset_File("Assets/DataBase/VoiceFile.sqlite");
#endif
        }
        else
        {
            VRDBController.ConIn(dir_path + "/DataBase/VoiceFile");
        }

        VRDBController.VoiceFile_Start();
        VRDBController.VoiceAudio_Start();

        yield return(null);
    }