我从Application.persistentDataPath获取文件并将其显示为列表。列表中的每个名称都包含一个删除按钮。当我单击删除按钮时,需要删除指定的文件。下面的代码不起作用。
public void ListMap()
{
panellist.SetActive(true);
string mainpath = Application.persistentDataPath;
DirectoryInfo dir = new DirectoryInfo(mainpath);
// FileInfo[] info = dir.GetFiles("*.json");
info = dir.GetFiles("*.json");
int icopy=0;
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;
icopy = i;
Debug.Log("ivalue forloop = " + icopy);
var button = lisobj.GetComponentInChildren<Button>();
Debug.Log("Button name = "+button.name);
if (button != null)
{
button.onClick.AddListener(() => Deleteinformation(icopy));
}
}
}
public void Deleteinformation(int ivalue)
{
Debug.Log("ivalue is = " + ivalue);
string mainpath = Application.persistentDataPath;
// File.Delete(mainpath + info[ivalue-1]);
// Debug.Log("ivalue is = "+ivalue);
File.Delete(mainpath + info[ivalue - 1]);
}
错误是 - 1)当我单击不同的按钮时,它试图删除相同的文件 - Modeldetails1.json
2)找不到路径“/ Users / ar / Library / Application Support / Systica / Mapping / Users / ar / Library / Application Support / Systi / Mapping / Modeldetails1.json”的一部分。
试试用
File.Delete(Path.Combine(mainpath, info[ivalue-1]));