2013-03-22 74 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

相關問題