C# 正在搜索无限列表列表列表列表列表。。。(这可能会一直持续)使用定义要查找多少列表的字符串
我有一个路径,这个路径并不总是相同的,用户可以输入例如/main/jumanji/hacks,然后输入/main/users/pirate/cool/beans 从这里我想检查这个路径是否存在于假环境中,例如/main/jumanji/hacks将类似于folders.contains(main)?文件夹[main]。包含哪些内容?jumanji,文件夹[main][jumanji]。包含什么?黑客, 返回文件夹[main][jumanji][hacks].文件 或 返回文件夹[main][jumanji][hacks].folders 问题是,我不知道用户将要写什么,而且,我可能有一系列的列表,这些列表可能会永远持续下去。如何检查路径是否存在并从中获取数据C# 正在搜索无限列表列表列表列表列表。。。(这可能会一直持续)使用定义要查找多少列表的字符串,c#,unity3d,C#,Unity3d,我有一个路径,这个路径并不总是相同的,用户可以输入例如/main/jumanji/hacks,然后输入/main/users/pirate/cool/beans 从这里我想检查这个路径是否存在于假环境中,例如/main/jumanji/hacks将类似于folders.contains(main)?文件夹[main]。包含哪些内容?jumanji,文件夹[main][jumanji]。包含什么?黑客, 返回文件夹[main][jumanji][hacks].文件 或 返回文件夹[main][ju
public class Example : MonoBehaviour
{
private string path = "/main/users/pirate/cool";
public bool Exists()
{
string[] folders = path.Split('\\');
//List<Folder> folders // assume it's already populated
// for(folders) contain /"main"/
// for(folders main) contains? users
// for folders(main, users) contains? pirate
// for folders(main, users, pirate) contains? cool
// return folders[main][users][pirate][cool].Files
// or
// return folders[main][users][pirate][cool].Folder
return false;
}
}
[System.Serializable]
public class Folder
{
public string Path;
public List<string> Folders;
public List<File> Files;
}
[System.Serializable]
public class File
{
public string Name;
public string Text;
public string Extension;
}
公共类示例:MonoBehavior
{
私有字符串路径=“/main/users/pirate/cool”;
公共布尔存在()
{
string[]folders=path.Split('\\');
//列出文件夹//假定已填充
//对于(文件夹)包含/“main”/
//for(主文件夹)包含?个用户
//对于文件夹(主文件夹、用户文件夹),包含?盗版
//文件夹(主文件夹、用户文件夹、盗版文件夹)包含?酷
//返回文件夹[main][users][pirate][cool]。文件
//或
//返回文件夹[main][users][pirate][cool]。文件夹
返回false;
}
}
[系统可序列化]
公共类文件夹
{
公共字符串路径;
公用文件夹列表;
公开文件清单;
}
[系统可序列化]
公共类文件
{
公共字符串名称;
公共字符串文本;
公共字符串扩展;
}
给定的代码太复杂了
您在哪些文件夹上为您的进行备份?我猜是字符串[]文件夹,所以将列表重命名为其他内容。
其中一个返回文件夹[main][users]..[cool].文件夹,但由于它已经是该文件夹,因此无法工作
你能重写给定的代码并更清楚地说明你想要什么吗?这些路径是什么?这是系统路径,游戏路径,给定的代码太复杂了 您在哪些文件夹上为您的进行备份?我猜是字符串[]文件夹,所以将列表重命名为其他内容。 其中一个返回文件夹[main][users]..[cool].文件夹,但由于它已经是该文件夹,因此无法工作
你能重写给定的代码并更清楚地说明你想要什么吗?这些路径是什么?这是系统路径、游戏路径等吗?我假设对您的代码进行了几次修改:
[System.Serializable]
public class Folder
{
// Supposing you have the name of the folder instead of its path
// Otherwise, you just have to check if the paths are equals
public string Name;
public List<Folder> Folders; // Folder instead of string
public List<File> Files;
}
public bool Exists( string path )
{
string[] hierarchy = path.Split('\\');
List<Folder> folders = GetRootFolders() ; // assume it's already populated
for( int i = 0 ; i < hierarchy.Length ; ++i )
{
if( folders == null || folders.Count == 0 )
return false ;
Folder desiredFolder = folders.Find( f => f.Name.Equals( hierarchy[i] ));
if( desiredFolder == null )
return false ;
folders = desiredFolder.Folders;
}
return true;
}
[System.Serializable]
公共类文件夹
{
//假设您有文件夹的名称而不是路径
//否则,只需检查路径是否相等
公共字符串名称;
公用列表文件夹;//文件夹而不是字符串
公开文件清单;
}
公共布尔存在(字符串路径)
{
string[]hierarchy=path.Split('\\');
List folders=GetRootFolders();//假设它已经被填充
for(int i=0;if.Name.Equals(层次结构[i]);
如果(desiredFolder==null)
返回false;
folders=desiredFolder.folders;
}
返回true;
}
我假设对您的代码进行了几次修改:
[System.Serializable]
public class Folder
{
// Supposing you have the name of the folder instead of its path
// Otherwise, you just have to check if the paths are equals
public string Name;
public List<Folder> Folders; // Folder instead of string
public List<File> Files;
}
public bool Exists( string path )
{
string[] hierarchy = path.Split('\\');
List<Folder> folders = GetRootFolders() ; // assume it's already populated
for( int i = 0 ; i < hierarchy.Length ; ++i )
{
if( folders == null || folders.Count == 0 )
return false ;
Folder desiredFolder = folders.Find( f => f.Name.Equals( hierarchy[i] ));
if( desiredFolder == null )
return false ;
folders = desiredFolder.Folders;
}
return true;
}
[System.Serializable]
公共类文件夹
{
//假设您有文件夹的名称而不是路径
//否则,只需检查路径是否相等
公共字符串名称;
公用列表文件夹;//文件夹而不是字符串
公开文件清单;
}
公共布尔存在(字符串路径)
{
string[]hierarchy=path.Split('\\');
List folders=GetRootFolders();//假设它已经被填充
for(int i=0;if.Name.Equals(层次结构[i]);
如果(desiredFolder==null)
返回false;
folders=desiredFolder.folders;
}
返回true;
}