当前位置:编程学习 > C#/ASP.NET >>

C#浏览文件夹

各位好心人
 怎样浏览一个文件夹用 shell函数吗 --------------------编程问答-------------------- 用C#获取浏览文件夹对话框  -----http://www.itqoo.com/programme/C/200610/17487.html --------------------编程问答-------------------- http://www.itqoo.com/programme/C/200610/17487.html

good! --------------------编程问答-------------------- http://woolcii.blogdriver.com/woolcii/52586.html --------------------编程问答-------------------- 我说的不是那个意思 我是说点击一个按纽之后 就象双击D盘一样看到的一样 就是在浏览器中看到文件夹 --------------------编程问答-------------------- C#工具箱中不是有 FolderBrowserDialog吗 ? 干嘛不用 --------------------编程问答-------------------- 学习 --------------------编程问答-------------------- FolderBrowserDialog 
实现的只是浏览文件 不能象双击D盘那样在浏览器中看文件夹 --------------------编程问答-------------------- 怎样调用浏览器 在浏览器中查看D盘的文件 --------------------编程问答-------------------- . 使用保持连接的方式编写程序,计算各年级平均成绩,并显示结果。
【解答】
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace 习题8_6_1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent(); 
        }
//添加Button按钮在ListBox中显示结果
        private void button1_Click(object sender, EventArgs e)
        {
            listBox1.Items.Add("年级         平均成绩");
            string connectionString = Properties.Settings.Default.MyDatabaseConnectionString;
            //根据连接字符串创建SqlConnection实例
            SqlConnection conn = new SqlConnection(connectionString);
            //创建SqlCommand实例,并设置SQL语句和使用的连接实例
            SqlCommand cmd = new SqlCommand();
            cmd.CommandText = "select substring(学号,1,2) as 年级,avg(成绩) as 平均成绩 from MyTable2 group by substring(学号,1,2)";
            cmd.Connection = conn;
            try
            {
                conn.Open();
                SqlDataReader r = cmd.ExecuteReader();
                while (r.Read() == true)
                {
                    listBox1.Items.Add(string.Format("{0}级           {1}", r[0], r[1]));
                }
                r.Close();
            }
            catch (Exception err)
            {
                MessageBox.Show(err.Message, "计算成绩失败");
            }
            finally
            {
                conn.Close();
            }
        }
    }
}
2. 使用保持连接的方式编写程序,查询MyTable2中不及格学生的学号,姓名,性别,成绩。并将结果在ListBox中显示出来。
【解答】
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace 习题8_6_2
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();            
        }
        private void button1_Click(object sender, EventArgs e)
        {
            listBox1.Items.Add("  学号        姓名     性别     成绩");
            string connectionString = Properties.Settings.Default.MyDatabaseConnectionString;
            //根据连接字符串创建SqlConnection实例
            SqlConnection conn = new SqlConnection(connectionString);
            //创建SqlCommand实例,并设置SQL语句和使用的连接实例
            SqlCommand cmd = new SqlCommand();
            cmd.CommandText = 
                "Select 学号,姓名,性别, 成绩 From MyTable2 Where (成绩<60)";
            cmd.Connection = conn;
            try
            {
                conn.Open();
                SqlDataReader r = cmd.ExecuteReader();
                while (r.Read() == true)
                {
       listBox1.Items.Add( string.Format("{0}     {1}     {2}       {3}", r[0], r[1], r[2], r[3]));
                }
                r.Close();
            }
            catch (Exception err)
            {
                MessageBox.Show(err.Message, "查询成绩失败");
            }
            finally
            {
                conn.Close();
            }
       }
    }
}
3. 编写程序,以“[编码]名称”的样式在comboBox1中显示MyTable1的内容。
【解答】
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace 习题8_6_3
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private void Form1_Load(object sender, EventArgs e)
        {
            string connectionString = Properties.Settings.Default.MyDatabaseConnectionString;
            //根据连接字符串创建SqlConnection实例
            SqlConnection conn = new SqlConnection(connectionString);
            //创建SqlCommand实例,并设置SQL语句和使用的连接实例
            SqlCommand cmd = new SqlCommand();
            cmd.CommandText = "Select *  From MyTable1";
            cmd.Connection = conn;
            try
            {
--------------------编程问答-------------------- conn.Open();
                SqlDataReader r = cmd.ExecuteReader();               
                while (r.Read() == true)
                {
                   comboBox1.Items.Add(string.Format("[{0}]    {1}", r[0], r[1]));
                }
                comboBox1.SelectedIndex = 0;
                r.Close();
            }
            catch (Exception err)
            {
                MessageBox.Show(err.Message, "显示数据失败");
            }
            finally
            {
                conn.Close();
            } 
        }
    }
}
4. 在画线处填上合适的内容,使程序变得正确完整。
string connString="server=localhost;Integrated Security=SSPI;database=pubs";
SqlConnection conn=____________________________
string strsql="select * from MyTable2";
SqlDataAdapter adapter=new SqlDataAdapter(_____________);
dataset=new DataSet();
adapter.Fill(________________,"MyTable2");
this.dataGridView1.DataSource=dataset.Tables["MyTable2"];
【解答】
string connString="server=localhost;Integrated Security=SSPI;database=pubs";
SqlConnection conn= new SqlConnection(Properties.Settings.Default.MyDatabaseConnectionString);
string strsql="select * from MyTable2";
SqlDataAdapter adapter=new SqlDataAdapter(conn);
dataset=new DataSet();
adapter.Fill(dataset,"MyTable2");
this.dataGridView1.DataSource=dataset.Tables["MyTable2"];
5. 已知数据库中定义了一张person表,表的数据结构如下:
字段名称 字段类型 字段含义
id 数字 编号
xm 文本 姓名
xb 文本 性别
nl 数字 年龄
zip 文本 邮政编码
用编写代码的方法在DataGridView中显示该数据表中年龄大于18的所有纪录,显示时以编号的升序排序,要求禁止用户编辑数据。
【解答】
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace 习题8_6_5
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private void button1_Click(object sender, EventArgs e)
        {
            string connectionstring = Properties.Settings.Default.MyDatabaseConnectionString ;
            SqlConnection conn = new SqlConnection(connectionstring);
            try
            {
                conn.Open();
                SqlDataAdapter adapter = new SqlDataAdapter(
                    "select  id,xm,xb,nl from person where nl > 18  order by id", conn);
                DataSet dataset = new DataSet();
                //如果不指定表名,则系统自动生成一个默认的表名
                adapter.Fill(dataset, "person");
                //可以使用索引引用生成的表               
                dataGridView1.DataSource = dataset.Tables["person"];
                adapter.Dispose();
            }
            catch (Exception err)
            {
                MessageBox.Show(err.Message);
            }
            finally
            {
                conn.Close();
            }
        }
        private void Form1_Load(object sender, EventArgs e)
        {
            //不允许用户直接在最下面的行添加新行
            dataGridView1.AllowUserToAddRows = false;
            //不允许用户直接按Delete键删除行
            dataGridView1.AllowUserToDeleteRows = false;
        }
    }
}
6.例8-18的存储过程定义中,将“@surname nvarchar(2),”改为“@surname nchar(2),”,是否仍然能够得到正确结果,为什么?
【解答】
不一定。因为如果传递的参数值为“王”,在存储过程中会自动变为“王  ”。
7. 调用存储过程,设计程序完成下列功能:任意给出一个汉字,统计MyTable2中所有包含该汉字的人数,并显示统计结果。
【解答】
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace 习题8_6_7
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();           
        }
        private void button1_Click(object sender, EventArgs e)
        {         
            SqlConnection conn =
            new SqlConnection(Properties.Settings.Default.MyDatabaseConnectionString);
            SqlCommand cmd = new SqlCommand();
            cmd.Connection = conn;
            //设置SQL语句为存储过程名,命令类型为存储过程
            cmd.CommandText = "SelectFilterStudentsNum";
            cmd.CommandType = CommandType.StoredProcedure;
            //添加存储过程中参数需要的初始值,注意参数名要和存储过程定义的参数名相同
            if( textBox1.Text=="")
            {
                MessageBox.Show("请输入有效信息","错误");
                textBox1.Focus();
                return ;
            }
            cmd.Parameters.AddWithValue("@surname", textBox1.Text);          
            cmd.Parameters.AddWithValue("@record", 0);
            //指定哪些参数需要返回结果            
            cmd.Parameters["@record"].Direction = ParameterDirection.Output;
            try
            {
                conn.Open();
                //执行存储过程
                cmd.ExecuteNonQuery();
                //显示返回的结果
                MessageBox.Show(string.Format("有{0}条含 {1} 的记录",
                cmd.Parameters["@record"].Value,textBox1.Text));
            }
            catch (Exception err)
            {
                MessageBox.Show(err.Message);
            }
            finally
            {
                conn.Close();
            }
        }
    }
}

--------------------编程问答-------------------- 习题6 参考解答
1. 简要回答文件和流之间的区别和联系。
【解答】
文件(file)和流(stream)即有区别又有联系。文件是在各种媒质上(可移动磁盘、硬盘、CD 等)永久存储的数据的有序集合。它是一种进行数据读写操作的基本对象。通常情况下,文件按照树状目录进行组织,每个文件都有文件名、文件所在路径、创建时间、访问权限等属性。
流是字节序列的抽象概念,例如文件、输入输出设备、内部进程通信管道或者TCP/IP套接字等均可以看成流。流提供一种向后备存储器写入字节和从后备存储器读取字节的方式。
2. Directory类为我们提供了哪些目录管理的功能,它们是通过哪些方法来实现的?
【解答】
Directory类为我们提供了对磁盘和目录进行管理的功能,如复制、移动、重命名、创建和删除目录,获取和设置与目录的创建、访问及写入操作相关的时间信息。
如:CreateDirectory方法用于创建指定路径中的所有目录;Delete方法用于删除指定的目录;Move方法能够重命名或移动目录;Exists方法用于确定给定路径是否引用磁盘上的现有目录;GetCurrentDirectory方法用于获取应用程序的当前工作目录;GetFiles方法用于返回指定目录中的文件的名称等。
3. 编写程序综合应用Directory类的主要方法。首先确定指定的目录是否存在,如果存在,则删除该目录;如果不存在,则创建该目录。然后,移动此目录,在其中创建一个文件,并对文件进行计数。
【解答】
程序清单如下:
using System;
using System.IO;
class Test 
{
    public static void Main() 
    {
        string path = @"c:\MyDir";
        string target = @"c:\TestDir";

        try 
        {
            if (!Directory.Exists(path)) 
            {
               Directory.CreateDirectory(path);
            }
            if (Directory.Exists(target)) 
            {
               Directory.Delete(target, true);
            }
            Directory.Move(path, target);
            File.CreateText(target + @"\myfile.txt");
            Console.WriteLine("在{0}中的文件数目是{1}",
                target, Directory.GetFiles(target).Length);
        } 
        catch (Exception e) 
        {
            Console.WriteLine("操作失败: {0}", e.ToString());
        } 
        finally {}
    }
}    
4. 编写程序,将文件复制到指定路径,允许改写同名的目标文件。
【解答】
程序清单如下:
using System;
using System.IO;
class Test 
{
    public static void Main() 
    {
        string path = @"c:\temp\MyTest.txt";
        string path2 = path + "temp";
        try 
        {
            using (FileStream fs = File.Create(path)) {}
            File.Delete(path2);
            File.Copy(path, path2);
            Console.WriteLine("{0}拷贝到:{1}", path, path2);
            File.Copy(path, path2, true);
            Console.WriteLine("第二次拷贝成功");
        } 
        catch 
        {
            Console.WriteLine("重复拷贝不允许");
        }
    }
}
5. 编写程序,使用File类实现删除当前目录下的所有文件。
【解答】
程序清单如下:
using System;
using System.IO;
class FileTest
{
public static void Main()
{
Console.WriteLine("确认删除当前目录下的所有文件?");
Console.WriteLine("点击'Y'键继续,其它键取消操作");
int a = Console.Read();
if(a == 'Y' || a == 'y'){
Console.WriteLine("正在删除文件...");
}
else
{
Console.WriteLine("用户取消操作");
return;
}
DirectoryInfo dir = new DirectoryInfo (".");
foreach (FileInfo f in dir.GetFiles())
{
f.Delete();
}
}
}
--------------------编程问答-------------------- 2005里有现成控件了 --------------------编程问答-------------------- 是什么控件啊 --------------------编程问答-------------------- 是要做什么东西啊 --------------------编程问答-------------------- 联系我吧,homeofish@126.com

我可以发个源码给你,我前几天写的 --------------------编程问答-------------------- webbrowser就可以实现你的要求``
自己去试试吧``当输入本地路径时``windows会默认以explorer来显示webbrowser``
--------------------编程问答-------------------- 跟使用资源浏览器一样的效果`` --------------------编程问答-------------------- Process.Start("目录名");

是不是这个意思啊 --------------------编程问答-------------------- process 我试一下 --------------------编程问答-------------------- 这个是启动进程 --------------------编程问答-------------------- webbrowser 相当完美了。 --------------------编程问答-------------------- mark --------------------编程问答-------------------- 呵呵,学习 --------------------编程问答-------------------- FolderBrowserDialog控件 --------------------编程问答-------------------- Process.Start("d:\") --------------------编程问答-------------------- 要自己写了,遍历文件夹和文件。 --------------------编程问答--------------------

 private void ChooseVideoPath()
        {
            FolderBrowserDialog fbd = new FolderBrowserDialog();

            fbd.Description = "选择一个文件夹";

            if (fbd.ShowDialog() == DialogResult.OK)
            {
                this.cbbVideoPath.Text = fbd.SelectedPath;
            }
            else
            {
                fbd.Dispose();
            }
            cbbVideoPath.Enabled = false; //cbb是Combobox
        }


看我的吧,我昨天刚写的,我没拖控件。直接实现。 --------------------编程问答-------------------- 哦,这个folderbrowserdialog控件不会只能选择文件夹吧?我想的是选择一个txt文件而已啊!天哪!
引用 27 楼 ahsun1987 的回复:
C# code

 private void ChooseVideoPath()
        {
            FolderBrowserDialog fbd = new FolderBrowserDialog();

            fbd.Description = "选择一个文件夹";

            if (fbd.ShowDialog() == Dia……
--------------------编程问答-------------------- FolderBrowserDialog 获取文件路径
例如          DialogResult se = FolderBrowserDialog1.ShowDialog();
            if (se == DialogResult.OK)
            {
                txtOutputPath.Text = FolderBrowserDialog.SelectedPath;
            }
OpenFileDialog 打开文件
SaveFileDialog 保存文件
例如  if (saveDiqu.ShowDialog() != DialogResult.OK)
     {
                //要执行的  
     } --------------------编程问答-------------------- 打开文件
if (openDiqu.ShowDialog() != DialogResult.OK)
            {
                
//打开文件内容读到字符串里
string   strList = System.IO.File.ReadAllText(openDiqu.FileName, System.Text.Encoding.Default);            
            }
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,