Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何从Unity中指定路径的文件列表中删除文件?_C#_Unity3d_Arkit - Fatal编程技术网

C# 如何从Unity中指定路径的文件列表中删除文件?

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

我从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]);

}
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]是一个游戏对象,而不是字符串