如何判断用户对文件是剪切还是复制?

来源:互联网 发布:2016中国出口数据 编辑:程序博客网 时间:2024/05/21 07:59

工作需要,模拟windows文件操作,要对剪贴板数据操作,在exe中模拟右键的文件复制,剪切,粘贴。网上完全没有找到类似的东西得到zswang的帮助,完成这个功能。 

模拟文件剪切:

 

DataObject cDataObject = new DataObject();
                         cDataObject.SetData(DataFormats.FileDrop, strFiles);
//strFiles

为文件路径的string[]
                         MemoryStream cMemoryStream 
= new MemoryStream();
                         cMemoryStream.WriteByte((
byte)DragDropEffects.Move);
                         cMemoryStream.WriteByte(
0);
                         cMemoryStream.WriteByte(
0);
                         cMemoryStream.WriteByte(
0);
                         cMemoryStream.Position 
= 0;
                         cDataObject.SetData(
"Preferred DropEffect", cMemoryStream);
                         Clipboard.SetDataObject(cDataObject);

判断用户在文件夹中是复制还是剪切

 

IDataObject vDataObject = Clipboard.GetDataObject();
    
if (!vDataObject.GetDataPresent(DataFormats.FileDrop)) return;
    MemoryStream vMemoryStream 
= (MemoryStream)vDataObject.GetData(
        
"Preferred DropEffect"true);
    DragDropEffects vDragDropEffects 
= (DragDropEffects)vMemoryStream.ReadByte();
    
if ((vDragDropEffects & DragDropEffects.Move) == DragDropEffects.Move)
        Text 
= "剪切";
    
else if ((vDragDropEffects & DragDropEffects.Copy) == DragDropEffects.Copy)
        Text 
= "复制";
原创粉丝点击