2013-03-22 43 views
0

我需要删除目录中的所有文件(由于图库脚本保持全尺寸的图像,但不使用它们!)。SQL查询选择目录,然后删除其中的所有文件 - C#

我已经写了一些代码将查询转储到DataTable中,然后遍历记录。但是,当我引入用于查找所有文件并删除它们的循环时,它似乎只运行第一个SiteID。应至少有350个目录可供扫描,但它只会执行第一个SiteID(此SiteID中的所有模块)。

任何想法,因为我难住!

private void frmMain_Load(object sender, EventArgs e) 
{ 
    SqlConnection con = null; 
    try 
    { 
     // Open connection to the database 
     string ConnectionString = "server=(local);UID=x;PWD=y;database=mojoportal2"; 
     con = new SqlConnection(ConnectionString); 
     con.Open(); 

     SqlDataAdapter da = new SqlDataAdapter(); 
     DataSet ds = new DataSet(); 
     DataTable dt = new DataTable(); 

     da.SelectCommand = new SqlCommand(@"SELECT SiteID, ModuleID FROM mp_Modules where ModuleDefID = 16 ORDER By SiteID DESC", con); 
     da.Fill(ds, "Sites"); 
     dt = ds.Tables["Sites"]; 

     foreach (DataRow dr in dt.Rows) 
     { 
      string SiteID = dr["SiteID"].ToString(); 
      string ModuleID = dr["ModuleID"].ToString(); 
      string directoryPath = @"E:\Website\" + SiteID + @"\media\GalleryImages\" + ModuleID + @"\FullSizeImages"; 

      MessageBox.Show("Deleting Files In " + directoryPath); 

      string[] files = Directory.GetFiles(directoryPath); 
      string[] dirs = Directory.GetDirectories(directoryPath); 

      foreach (string file in files) 
      { 
       MessageBox.Show(file); 
       //File.SetAttributes(file, FileAttributes.Normal); 
       //File.Delete(file); 
      } 
     } 
    } 
    catch (Exception ex) 
    { 
     // Print error message 
     MessageBox.Show(ex.Message); 
    } 
    finally 
    { 
     if (con.State == ConnectionState.Open) 
      con.Close(); 
    } 
} 
+0

你检查了什么是SQL查询的结果?在甚至去删除目录之前,你从那里得到什么数据? – Yahya 2013-03-22 10:33:30

回答

0

首先我会在填充DataSet后关闭连接字符串。我会在你的DataTable上做一个'快速观察'并确保你所有的数据都在那里。如果没有,那么修改你的查询。

+0

如果我注释掉文件部分的foreach消息框显示它通过所有的目录(所有siteId和moduleID的)第二我添加第二个foreach循环在它似乎只使用第一个siteID – 2013-03-22 11:01:10

+0

你是否得到任何异常在调试?听起来像你的'文件'数组是空的。 – 2013-03-22 11:02:58

+0

对于我来说,它很难在运行的服务器上运行,但是如果我删除了它的foreach,则它会运行整个结果集。有没有错误,我很难调试。 – 2013-03-22 11:32:12

相关问题