尝试根据扩展名 *.json 列出一些文件。在父母下实例化预制件,但它不会按顺序出现。有没有办法刷新列表或按升序排列它们。目的是加载和删除文件。如何排列文件 1,2, 3,4,5...如果有 10 个文件,最后保存的文件应该在父文件下的第 10 位?
Dictionary<int, Button> BtnList = new Dictionary<int, Button>();
public static FileInfo[] info;
GameObject lisobj;
public void ListMap()
{
panellist.SetActive(true);
string mainpath = Application.persistentDataPath;
DirectoryInfo dir = new DirectoryInfo(mainpath);
info = dir.GetFiles("*.json");
for(int i = 1;i<=info.Length;i++)
{
lisobj = Instantiate(prefabpanellist);
lisobj.transform.SetParent(Parentcontent);
number.text = i.ToString();
mapnamedb.text =info[i-1].Name;
var button = lisobj.GetComponentInChildren<Button>();
BtnList.Add(i,button);
}
lisobj.transform.SetParent(Parentcontent);
Dictionary<int, Button>.ValueCollection values = BtnList.Values;
foreach (Button btn in values)
{
btn.onClick.AddListener(() => Deleteinformation());
}
}
public void Deleteinformation()
{
var b= UnityEngine.EventSystems.EventSystem.current.currentSelectedGameObject.GetComponent<Button>();
var mykey=BtnList.FirstOrDefault(x=>x.Value==b).Key;
Debug.Log("Items are" + mykey);
string mainpath = Application.persistentDataPath;
Debug.Log("Name is " + info[mykey - 1].Name);
//File.Delete(mainpath + info[mykey-1].);
}
最初,当我将文件保存到 .json 并单击 Listmap 按钮(显示文件列表 - 如屏幕截图所示)时。它两次显示索引号 5。我保存的最后一个文件也被命名为“00000.json”,但它成为第一个文件。那是在我保存它之后(文件列表)没有得到更新,当我单击 Listmap 时,文件多次显示相同的索引号。似乎它没有刷新不确定。另一个问题是最后保存的文件位于顶部。
胡子哥哥
相关分类