C# 如何从Unity中指定路径的文件列表中删除文件?
我从Application.persistentDataPath获取了文件,并将其显示在列表中。列表中的每个名称都包含一个“删除”按钮。单击“删除”按钮时,需要删除指定的文件。以下代码无效C# 如何从Unity中指定路径的文件列表中删除文件?,c#,unity3d,arkit,C#,Unity3d,Arkit,我从Application.persistentDataPath获取了文件,并将其显示在列表中。列表中的每个名称都包含一个“删除”按钮。单击“删除”按钮时,需要删除指定的文件。以下代码无效 public void ListMap() { panellist.SetActive(true); string mainpath = Application.persistentDataPath; DirectoryInfo dir = new DirectoryInfo(main
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]);
}
public void ListMap()
{
panellist.SetActive(true);
字符串mainpath=Application.persistentDataPath;
DirectoryInfo dir=新的DirectoryInfo(mainpath);
//FileInfo[]info=dir.GetFiles(“*.json”);
info=dir.GetFiles(“*.json”);
int-icopy=0;
对于(int i=1;i删除信息(icopy));
}
}
}
公共信息(国际通用)
{
Debug.Log(“ivalue is=“+ivalue”);
字符串mainpath=Application.persistentDataPath;
//文件删除(mainpath+info[ivalue-1]);
//Debug.Log(“ivalue is=“+ivalue”);
删除(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]));
“下面的代码不工作。”请解释“不工作”在这里的含义。你有错误吗?是否删除了错误的文件?@remy_rm首先,ivalue没有打印出来……文件仍在路径中。我认为这可能是一个关闭问题。尝试在循环内创建
i
的副本,并使用此值传递到Deleteinformation
<代码>int iCopy=i;delbutton.OnClick.AddListener(()=>Deleteinformation(iCopy))代码>它不起作用…我们如何检查是否添加了侦听器?我尝试检查实例化的对象,在“删除”按钮中,Onclick是空的delbutton
设置在哪里?现在,您正在为同一个delbutton
实例分配多个侦听器,但info[ivalue-1]是一个游戏对象,而不是字符串