初衷
项目要经过gmp审核,需要将文件的绝对路径隐藏起来,使用户在选择或者打开时只能看到固定的相对路径。使用原生的 OpenFileDialog 时无法对其界面的显示地址进行隐藏,故需要自定义开发一款文件选择对话框
实现
相当于设计了两个窗体【文件选择和文件夹选择】。文件选择器需要实现文件的多选和单选,根据文件后缀名进行筛选等功能。文件夹选择界面需要实现文件夹新建、删除、更目录和历史记录等功能。
代码
// 循环遍历出TreeView内容
private void BindChild(TreeNode fNode)
{
string path = fNode.Tag.ToString();
//父目录
DirectoryInfo fDir = new DirectoryInfo(path);
FileSystemInfo[] finfos = fDir.GetFileSystemInfos();
foreach (FileSystemInfo f in finfos)
{
string type = f.GetType().ToString();
TreeNode node = new TreeNode();
node.Text = f.Name;
node.Tag = f.FullName;
if ("System.IO.DirectoryInfo" == type) //是文件夹时才递归调用自己
{
fNode.Nodes.Add(node);
BindChild(node);
}
}
}
效果
结语
主要就是一些控件的搭配使用,加上一些触发事件。
成品下载:https://download.youkuaiyun.com/download/qq_38922932/86750635
源码:https://github.com/Dream9898123/myFileDialog