繁体   English   中英

使用剪切或复制从剪贴板粘贴文件

[英]Paste Files from Clipboard with Cut or Copy

.NET Clipboard 类具有将文件放入剪贴板并定义是否应移动或复制(剪切/复制)的方法。

但是,如果我想粘贴复制到剪贴板中的文件,我看不出该文件是使用标准剪贴板方法剪切还是复制的

该信息存储在名为“Preferred DropEffect”的剪贴板数据对象中。 包含 4 字节数组的内存流包含System.Windows.DragDropEffects的枚举值:

public static void PasteFilesFromClipboard(string aTargetFolder)
{
    var aFileDropList = Clipboard.GetFileDropList();
    if (aFileDropList == null || aFileDropList.Count == 0) return;

    bool aMove = false;

    var aDataDropEffect = Clipboard.GetData("Preferred DropEffect");
    if (aDataDropEffect != null)
    {
            MemoryStream aDropEffect = (MemoryStream)aDataDropEffect;
            byte[] aMoveEffect = new byte[4];
            aDropEffect.Read(aMoveEffect, 0, aMoveEffect.Length);
            var aDragDropEffects = (DragDropEffects)BitConverter.ToInt32(aMoveEffect, 0);
            aMove = aDragDropEffects.HasFlag(DragDropEffects.Move);
    }

    foreach (string aFileName in aFileDropList)
    {
        if (aMove) { } // Move File ...
        else { } // Copy File ...
    }
}

[Flags]
public enum DragDropEffects
{
    Scroll = int.MinValue,
    All = -2147483645,
    None = 0,
    Copy = 1,
    Move = 2,
    Link = 4
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM