wpf程序中,用treeview读取选择目录下文件夹和文件

amamyiyi 2013-12-24 12:24:40
在wpf应用程序中,添加一个treeview 和一个button控件,单机button控件,弹出选择文件的对话框,当选好文件的时候,帮该文件作为根据点,然后同名目录下的文件夹作为子节点,同时显示文件夹内的文件,例如images文件夹和image.exe文件在相同目录下,当选择image。exe文件的时候,把image.exe作为根节点,iamge文件夹作为子节点。。
最好给个代码,本人初学。

坐等答复
...全文
1058 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
wind_cloud2011 2013-12-24
  • 打赏
  • 举报
回复
写错了,是sln
amamyiyi 2013-12-24
  • 打赏
  • 举报
回复
引用 12 楼 wind_cloud2011 的回复:
你要做成vs2010的,.sl里有好多的信息,好难,哈哈
sl是什么
wind_cloud2011 2013-12-24
  • 打赏
  • 举报
回复
你要做成vs2010的,.sl里有好多的信息,好难,哈哈
amamyiyi 2013-12-24
  • 打赏
  • 举报
回复
引用 10 楼 wind_cloud2011 的回复:
如:要打开的文件内容为: test.txt内容为:e:\

  if (this.openFileDialog1.ShowDialog() == DialogResult.OK)
          {
              string file = openFileDialog1.SafeFileName;
              Sdir = System.IO.File.ReadAllText(file);
          }
这个意思我懂,但是对于要实现我想要的功能是实现不了的呀
wind_cloud2011 2013-12-24
  • 打赏
  • 举报
回复
如:要打开的文件内容为: test.txt内容为:e:\

  if (this.openFileDialog1.ShowDialog() == DialogResult.OK)
          {
              string file = openFileDialog1.SafeFileName;
              Sdir = System.IO.File.ReadAllText(file);
          }
amamyiyi 2013-12-24
  • 打赏
  • 举报
回复
引用 8 楼 wind_cloud2011 的回复:
那目录及文件信息就应该放在sln文件里


可是就要想c#程序那样呢


选择wcf.sln,加载后显示

这样的
wind_cloud2011 2013-12-24
  • 打赏
  • 举报
回复
那目录及文件信息就应该放在sln文件里
amamyiyi 2013-12-24
  • 打赏
  • 举报
回复
引用 6 楼 u013263758 的回复:
[quote=引用 5 楼 wind_cloud2011 的回复:] 那要做个判断,如果目录不存在,则建立,你把我发这个修改一下就可
我用的是wpf做的,你用的是winform做的,不一样,可否麻烦一下帮忙修改一下,刚学的。[/quote] 还有就是不需要判断,直接就是打开选择文件对话框,选择.sln文件,然后加载应用程序和应用程序内的文件夹文件
amamyiyi 2013-12-24
  • 打赏
  • 举报
回复
引用 5 楼 wind_cloud2011 的回复:
那要做个判断,如果目录不存在,则建立,你把我发这个修改一下就可
我用的是wpf做的,你用的是winform做的,不一样,可否麻烦一下帮忙修改一下,刚学的。
wind_cloud2011 2013-12-24
  • 打赏
  • 举报
回复
那要做个判断,如果目录不存在,则建立,你把我发这个修改一下就可
amamyiyi 2013-12-24
  • 打赏
  • 举报
回复
引用 2 楼 wind_cloud2011 的回复:
一般情况是以目录作为根节点,你选择文件作为根节点,为何?
就像vs环境里的解决方案一样,打开解决方案,把解决方案放在根节点,解决方案里的文件夹和一些文件在子节点
wind_cloud2011 2013-12-24
  • 打赏
  • 举报
回复
  TreeNode TNode= new TreeNode();
          int n=0;
          string Sdir = @"e:\\";
          DirectoryInfo dir = new DirectoryInfo(Sdir);
          try
          {
              if (!dir.Exists)//判断所指的文件或文件夹是否存在
              {
                 // Directory.CreateDirectory(Sdir);
 
                  return;
              }
              DirectoryInfo dirD = dir as DirectoryInfo;//如果给定参数不是文件夹则退出
              if (dirD == null)//判断文件夹是否为空
              {
                  return;
              }
              else
              {
                  if (n == 0)
                  {
                      TNode = TV.Nodes.Add(dirD.Name);//添加文件夹的名称
                      TNode.Tag = 1;
                  }
                  else
                  {
                      TNode = TNode.Nodes.Add(dirD.Name);//添加文件夹里面各文件夹的名称
                      TNode.Tag = 1;
                  }
              }
              FileSystemInfo[] files = dirD.GetFileSystemInfos();//获取文件夹中所有文件和文件夹
              //对单个FileSystemInfo进行判断,如果是文件夹则进行递归操作
              foreach (FileSystemInfo FSys in files)
              {
                  FileInfo file = FSys as FileInfo;
                  if (file != null)//如果是文件的话,进行文件的复制操作
                  {
                      FileInfo SFInfo = new FileInfo(file.DirectoryName + "\\" + file.Name);//获取文件所在的原始路径
                      TNode.Nodes.Add(file.Name);//添加文件
                      TNode.Tag = 1;
                  }
                  else
                  {
                      string pp = FSys.Name;//获取当前搜索到的文件夹名称                      
                  }
              }

          }
          catch (Exception ex)
          {
              MessageBox.Show(ex.Message);
              return;
          }
wind_cloud2011 2013-12-24
  • 打赏
  • 举报
回复
一般情况是以目录作为根节点,你选择文件作为根节点,为何?
wind_cloud2011 2013-12-24
  • 打赏
  • 举报
回复
iamge文件夹作为子节点,这个目录要存在才行吧

110,561

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧