//递归算法--遍历指定目录下的子目录及文件(C#.net),希望有用,顺带数据入库
private void button1_Click(object sender, System.EventArgs e)
{
Conn.Open();
displayItems(textBox1.Text);
//MessageBox.Show(dirs.Length.ToString());
Conn.Close();
}
/*这里是递归算法的遍历程序部分*/
private void displayItems(string path)
{
try
{
DirectoryInfo di=new DirectoryInfo(path);
FileInfo[] SubFiles=di.GetFiles();
FileSystemInfo[] dirs = di.GetDirectories();
foreach(FileInfo fileNext in SubFiles)
{
/*-----------------------------------------------------------------------------------------------------*/
string path_total=path + "/" +fileNext.ToString();
int path_start=path_total.IndexOf("/")+1;
int path_end=path_total.LastIndexOf("/");
string path_name;
if(path_start-1==path_end)
{
path_name="";
}
else
{
path_name=path.Substring(path_start,path_end-path_start);
}
switch(path_start.ToString())
{
case "....":
break;
}
/*-----------------------------------------------------------------------------------------------------*/
string sql="insert into pic_data(pic_name,pic_path,pic_time) values(’"+ fileNext.ToString() +"’,’"+ path_name +"’,’"+ DateTime.Now.ToString() +"’)";
SqlCommand Cmd=new SqlCommand(sql,Conn);
if(checkBox_insertdb.Checked==true)
Cmd.ExecuteNonQuery();
richTextBox1.Text=richTextBox1.Text + "\r\n" + path + "/" +fileNext.ToString() + " ("+sql+")";
}
foreach(DirectoryInfo diNext in dirs)
{
displayItems(path + "/" + diNext.ToString());
}
}
catch(Exception ex)
{
richTextBox1.Text=ex.Message +"\r\n"+ richTextBox1.Text;
}
}
}