2016-08-03 128 views
0

我有一個程序需要刪除一個完整的目錄,但我得到了Access to path denied錯誤。我給予每個人完全的訪問權限,但它沒有幫助。訪問路徑被拒絕錯誤

private void timer1_Tick(object sender, EventArgs e) 
{ 
    label1.Text = DateTime.Now.ToString("HH:mm"); 
    string lowDir = ""; 
    if (label1.Text == comboBox1.Text) 
    { 
     try 
     { 
      if (System.IO.Directory.GetDirectories(txpath1.Text).Length != 0) 
      { 
       try 
       { 
        var folders = Directory.GetDirectories(@"" + txpath1.Text); 
        DateTime lastLow = DateTime.Now; 

        foreach (string subdir in Directory.GetDirectories(@"" + txpath1.Text)) 
        { 
         DirectoryInfo fi1 = new DirectoryInfo(subdir); 
         fi1.Refresh(); 
         DateTime created = fi1.LastWriteTime; 
         if (created < lastLow) 
         { 
          lowDir = subdir; 
          lastLow = created; 
         } 
        } 
        var dir = new DirectoryInfo(@"" + lowDir); 
        Directory.Delete(@"" + lowDir, true); 
       } 
       catch (Exception ex) 
       { 
        this.btStop.PerformClick(); 
        MessageBox.Show(ex.Message+"\nEzért a program leállt."); 
       } 
       finally 
       { 
        timer1.Stop(); 
        timer2.Start(); 
       } 
      } 
      else 
      { 
       this.btStop.PerformClick(); 
       MessageBox.Show("A megadott elérési útvonalon nem találhatóak fájlok a művelet(ek)hez!"); 
      } 
     } 
     catch (DirectoryNotFoundException) 
     { 
      btStop.PerformClick(); 
      MessageBox.Show("Hibás útvonala(kat)t adtál meg!"); 
     } 
    } 
} 
+1

在嘗試刪除目錄之前是否檢查該目錄是空的?並確保目錄不是隻讀 – Josh

+0

我不確定你是否正確地轉義'txpath1.Text'。 – user1666620

+0

喬希,不,我現在沒有檢查它,我可以使它工作後,我會。該目錄不是空的,通常當目錄包含mp3,mp4或exe文件時,我得到這個錯誤。如果我將一個簡單的pdf文件放入該目錄中,我不會收到此錯誤。 – celodir

回答

0

您只需要使用Directory.Delete(path, true)遞歸刪除。如果這不起作用,那麼它可能是一個格格不入的路徑。