C#winform根据文件名获得文件路径

rudolph_zhong 2015-08-30 11:24:32
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace URLsearching
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void textBox1_TextChanged(object sender, EventArgs e)
{

}

private void button1_Click(object sender, EventArgs e)
{

string dir = "C:\\A\\" + textBox1.Text;
if (Directory.Exists(dir))
{
string[] files = Directory.GetFiles(dir, "*.*", SearchOption.AllDirectories);
}


}

private void textBox2_TextChanged(object sender, EventArgs e)
{

}
}
}

我就写成这样子,我也不知道现在写的对不对,就算对了,我也有个问题就是想问怎么把路径输出到TextBox2中?
新手程序员,对C#完全不熟悉,但是因为马上要交给客户,求各路大神给完整代码

思路如下:
winform中两个TextBox,一个button,用户对TextBox1输入一段字符,点击button,TextBox2输出绝对路径(已可以确定输入的文件名是精确的,所以精确搜索就可以,不用模糊查找,另外就是要搜索到文件夹下的所有子文件夹)
...全文
387 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
rudolph_zhong 2015-08-31
  • 打赏
  • 举报
回复
引用 1 楼 caozhy 的回复:
string[] files = Directory.GetFiles(dir, "*.*", SearchOption.AllDirectories); 这里面就包含了路径。 用Path.GetDirectoryName可以得到路径
应该怎么样写?因为我真的不懂。。。 请问可以把完整button的代码写给我吗?谢谢了
Poopaye 2015-08-31
  • 打赏
  • 举报
回复
引用 楼主 rudolph_zhong 的回复:
新手程序员,对C#完全不熟悉,但是因为马上要交给客户
我对这位客户感到深深的担忧
SineMetu1 2015-08-31
  • 打赏
  • 举报
回复
这里填写文件名和初始路径就可以查到你要的文件的路径

        private void button1_Click(object sender, EventArgs e)
        {
            //这里是查找的文件名
            string filename = "填入查找的文件";
            //默认路径是根目录.可以让用户选择盘符
            string rootPath = "C:\\";
            SearchFile(rootPath, filename);
        }

        private string SearchFile(string path ,string fileName)
        {
            try
            {
                //先查找此文件夹有没有需要的查找的文件
                string[] files = Directory.GetFiles(path);
                foreach (string file in files)
                {
                    if (fileName == file)
                    {
                        return path;
                    }
                }

                //如果次文件夹下没有查到此文件,则查找此文件夹下的文件
                string[] dirs = Directory.GetDirectories(path);
                foreach (string dir in dirs)
                {
                    SearchFile(dir, fileName);
                }

                //没查找到需要的文件返回空
                return null;

            }
            catch (Exception e)
            {
                return null;
            }
        }
  • 打赏
  • 举报
回复
Directory.GetFiles(dir, "*.*", SearchOption.AllDirectories); 你是要找什么?dir怎么是用来组织文件夹的,而不是用来输入文件名? 否则的话第二个参数应该就是具体的文件名
SineMetu1 2015-08-31
  • 打赏
  • 举报
回复
要进行文件查找,首先得明确是哪个盘符,知道哪个盘符后进行递归查找你需要的文件夹或文件.查到后,如果是文件夹在递归查找所有的子文件夹就OK了
sun_fjr 2015-08-31
  • 打赏
  • 举报
回复
你的textbox1取的是什么啊?文件名还是文件夹名?Directory.Exists(dir)是检测文件夹是否存在,File.exit()才是检测文件
sun_fjr 2015-08-31
  • 打赏
  • 举报
回复

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void textBox1_TextChanged(object sender, EventArgs e)
        {

        }

        private void button1_Click(object sender, EventArgs e)
        {

            string dir = "D:\\新建文件夹\\" + textBox1.Text;
            if (Directory.Exists(dir))
            {
                string[] files = Directory.GetFiles(dir, "*.*", SearchOption.AllDirectories);
                for (int i = 0; i < files.Length; i++)
                {
                    this.richTextBox1.Text += string.Format("{0}\r\n",files[i].ToString());
                }
            }


        }

        private void textBox2_TextChanged(object sender, EventArgs e)
        {

        }
    }
}

EdsionWang 2015-08-31
  • 打赏
  • 举报
回复
这不都取到了吗?files数组存的不都是文件全名(含路径),接下去你用files数组不就好了吗
gis_99 2015-08-31
  • 打赏
  • 举报
回复
还是自己多学习多琢磨。
threenewbee 2015-08-30
  • 打赏
  • 举报
回复
string[] files = Directory.GetFiles(dir, "*.*", SearchOption.AllDirectories); 这里面就包含了路径。 用Path.GetDirectoryName可以得到路径

110,536

社区成员

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

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

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