【发布时间】:2017-05-23 13:39:25
【问题描述】:
我想解析一个用户可以选择的文件夹。 但如果我理解的话,UWP 中不允许使用绝对路径,因为媒体(xbox、windows phone、windows 桌面等)之后的磁盘不一样?
所以,我有一个名为 Parser 的类,它可以解析用户选择的路径,但现在只能解析当前文件夹。
这不起作用:
Parser parser = new Parser(@"C:\a\b\c");
parser.createTreeView(tree);
请帮帮我。提前谢谢你。
编辑:这是我的解析器 class=>
public TreeViewItem Parse(DirectoryInfo directoryInfo)
{
try
{
var directoryNode = new TreeViewItem { Header = directoryInfo.Name };
Convention convention = new Convention();
foreach (var directory in directoryInfo.GetDirectories())
{
directoryNode.Items.Add(Parse(directory));
System.Diagnostics.Debug.WriteLine("test : " + directory.Name);
}
foreach (var file in directoryInfo.GetFiles())
{
if (file.Name.Contains(EConvention.INSTALL))
{
listFiles.Add(file.FullName);
}
TreeViewItem item = new TreeViewItem
{
Header = Path.GetFileNameWithoutExtension(file.FullName),
Tag = file.FullName
};
directoryNode.Items.Add(item);
}
return directoryNode;
}
catch (System.UnauthorizedAccessException e)
{
//MessageDialog dialog = new MessageDialog(""+e.Message);
dialogAsync(e.Message);
return new TreeViewItem();
}
}
public void CreateTreeView(TreeView tree)
{
DirectoryInfo dir = new DirectoryInfo(pathToParse);
System.Diagnostics.Debug.WriteLine("dir exists ? "+dir.Exists);
if (dir.Exists)
{
System.Diagnostics.Debug.WriteLine("dir existe");
TreeViewItem root = new TreeViewItem() { Header = dir.Name };
root.Tag = dir;
tree.Items.Add(Parse(dir));
}
}
【问题讨论】:
-
“解析文件夹”是什么意思?向我们展示
Parser类的完整代码也会有所帮助 -
我想解析一个文件夹来创建一个TreeView。我编辑我的问题,向您展示我的 Parser 课程。
-
那么它如何以及以何种方式不解析任何其他文件夹?
-
当我将另一个路径放入文件夹时,我的条件:
if(dir.Exists)返回 false