2012-07-04 59 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或其他一些慢速媒体上的文件(像云一样)它可能。但我还没有尝试过。 –