/// <summary> /// あるノードの子階層にノードを追加するメソッド /// </summary> /// <param name="parent">親となるノード</param> /// <param name="splitedValues">追加するノードのパス</param> /// <param name="depth">splitedValuesの添え字として使用します。デフォルトでは0が指定されます。</param> public static GUITree <T> Add(GUITree <T> parent, string[] splitedValues, int depth = 0) { // 不正なパラメータのチェック if (parent == null) { return(parent); } if (splitedValues == null) { return(parent); } if (depth >= splitedValues.Length) { return(parent); } if (depth < 0) { return(parent); } // 新しいノードを追加する var result = parent.Add(splitedValues[depth]); // 再起的にノードを追加する return(Add(result, splitedValues, depth + 1)); }
private void OnEnable() { mFoldoutTree = new GUITree <FoldoutTree>("Root"); var lsit = GetFileList(Application.dataPath); string[] values = lsit.ToArray(); for (int i = 0; i < values.Length; ++i) { GUITree <FoldoutTree> .Add(mFoldoutTree, values[i], separator : '\\'); } string[] columns = new string[] { "番号", "パス", "更新日時", "作成日時", "読み書き", "サイズ", }; mCells.SetCapacity(values.Length, columns.Length); mCells.SetColumnNames(columns); for (int i = 0; i < values.Length; ++i) { var fi = new System.IO.FileInfo(values[i]); int index = 0; index = 0; mCells.SetCellValue(i, index++, i.ToString()); mCells.SetCellValue(i, index++, fi.FullName); mCells.SetCellValue(i, index++, fi.LastWriteTime.ToString("yyyy/MM/dd hh:mm")); mCells.SetCellValue(i, index++, fi.CreationTime.ToString("yyyy/MM/dd hh:mm")); mCells.SetCellValue(i, index++, fi.IsReadOnly?"Read Only":"Read Write"); mCells.SetCellValue(i, index++, fi.Length.ToString("#,0")); } }