2012-07-04 96 views
0

我有一個表單,我希望能夠在其上放置文件。我有以下代碼:如何只刪除Windows窗體窗體中的文件?

private void Form1_DragEnter(object sender, System.Windows.Forms.DragEventArgs e) 
{ 
    if (e.Data.GetDataPresent(DataFormats.FileDrop)) 
     e.Effect = DragDropEffects.Copy; 
    else 
     e.Effect = DragDropEffects.None; 
} 

我希望光標改變只有當我下降的文件,而不是當我把目錄。上面的代碼也改變了它的目錄。我究竟做錯了什麼?是否有任何文件的數據格式,或者我應該只是試圖檢查我在e.Data中獲得的擴展名的對象?

+0

有什麼理由不檢查文件擴展名? –

回答

0

您應該檢查數據使用File.Exists?我認爲如果它是一個文件將會返回true,如果不是,則返回false。

這裏是MSDN一個例子:

 if(File.Exists(path)) 
     { 
      // This path is a file 
      ProcessFile(path); 
     }    
     else if(Directory.Exists(path)) 
     { 
      // This path is a directory 
      ProcessDirectory(path); 
     } 
     else 
     { 
      Console.WriteLine("{0} is not a valid file or directory.", path); 
     }   
+0

你試過這個嗎?我認爲在鼠標拖動過程中做文件訪問會導致打嗝和口吃。 –

+0

@SteveWellens如果你這樣做不會發生每一次鼠標移動(剪貼板將在拖動時是靜態的) –

+0

@DanielMošmondor - 如果它是網絡驅動器或CD或其他一些慢速媒體上的文件(像雲一樣)它可能。但我還沒有嘗試過。 –