递归算法--遍历指定目录下的子目录及文件(C#.net)

王朝c#·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

//递归算法--遍历指定目录下的子目录及文件(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;

}

}

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航