2009-07-13 81 views
3

在C#(interop也許)中有任何方法可以永久刪除回收站中的特定文件嗎?

雖然在互聯網上搜索,我只找到方法來刪除回收站不是從。 我也不想清空整個垃圾箱,只是一個特定的文件。具體項目已經在回收站中。從回收站刪除單個項目

我該怎麼做?

編輯:

  1. 我沒有那個文件我自己,也不是我的程序。有人這樣做,我無法控制。
  2. Windows搜索以某種方式能夠找到我的文件...?!?

我發現了另一件事,我實際上可以在C:\ RECYCLER中找到具有相同文件擴展名但文件名不同的文件。那麼我怎麼知道這是否是我正在尋找的文件呢?

+0

你怎麼知道這是你正在尋找的文件?內容,大小等? – 2009-07-13 16:36:08

+0

1.相同的擴展 2.清除一切,包括隱藏文件夾回收,只刪除我的文件 瞧它在那裏的唯一文件 – eric 2009-07-13 17:45:13

回答

-1

這可能是一個愚蠢的問題,但文件進入回收,因爲你的程序放在那裏?如果是這樣,您可以使用普通文件操作刪除文件,並完全繞過回收站。

+0

沒有別人,但它有 – eric 2009-07-13 14:03:18

0

我從來沒有嘗試過,但是您可以在每個單元所隱藏的文件夾「RECYCLER」中搜索想要刪除的項目,並將其刪除。

+0

Windows搜索能夠真正做到這一點,但由於某些原因的GetFiles()返回一些奇怪的其他文件,甚至沒有在我的回收站。 我似乎無法得到我正在尋找的文件 不幸的是... – eric 2009-07-13 14:06:50

0
using Shell32; 

變種SHL =新殼牌();

// Get recycle folder 

Folder Recycler = Shl.NameSpace(10); 
FolderItems items = Recycler.Items(); 
for (int i = 0; i < items.Count; i++) 
{ 
    try 
    { 
     FolderItem FI = items.Item(i); 
     string FileName = Recycler.GetDetailsOf(FI, 0); 
     string FilePath = Recycler.GetDetailsOf(FI, 1); 
     string RecyleDate = Recycler.GetDetailsOf(FI, 2); 
     if (FileName == "your file/folder") 
     { 
      // check if chosen item is a folder 
      if (FI.IsFolder) 
      { 
       Directory.Delete(FI.Path, true); 
      } 
      else 
      { 
       File.Delete(FI.Path); 
      } 
     } 
    } 
    catch (Exception exc) 
    { 
     ... 
    } 

希望這可能會有所幫助。適用於我)

相關問題