Winform

     // <summary>
/// 复制或剪切文件至剪贴板(方法)
/// </summary>
/// <param name="files">需要添加到剪切板的文件路径数组</param>
/// <param name="cut">是否剪切true为剪切,false为复制</param>
public static void CopyToClipboard(string[] files, bool cut)
{
if (files == null) return;
IDataObject data = new DataObject(DataFormats.FileDrop, files);
MemoryStream memo = new MemoryStream();
byte[] bytes = new byte[] { (byte)(cut ? : ), , , };
memo.Write(bytes, , bytes.Length);
data.SetData("Preferred DropEffect", memo);
Clipboard.SetDataObject(data);
} /// <summary>
/// 获取剪贴板中的文件列表(方法)
/// </summary>
/// <returns>System.Collections.List<string>返回剪切板中文件路径集合</returns>
public static List<string> GetClipboardList()
{
List<string> clipboardList=new List<string>();
System.Collections.Specialized.StringCollection sc = Clipboard.GetFileDropList();
for (int i = ; i < sc.Count; i++)
{
string listfileName = sc[i];
clipboardList.Add(listfileName);
}
return clipboardList;
}

wpf

/// <summary>
/// 复制粘贴帮助类
/// </summary>
public class ClipboardHelper
{ /// <summary>
/// 复制到剪切板
/// </summary>
/// <param name="text">文字</param>
public static void CopyText(string text)
{
Clipboard.SetText(text);
} /// <summary>
/// 复制或剪切文件到剪切板
/// </summary>
/// <param name="filePath">文件路径数组</param>
/// <remarks>清空剪切板</remarks>
public static void SetFileDrop(string filePath)
{
if (filePath == null) return;
SetFileDropList(new[] { filePath });
}
/// <summary>
/// 复制或剪切文件到剪切板
/// </summary>
/// <param name="files">文件路径数组</param>
/// <remarks>清空剪切板</remarks>
public static void SetFileDropList(string[] files)
{
Clipboard.Clear();//清空剪切板
StringCollection strcoll = new StringCollection();
foreach (var file in files)
{
strcoll.Add(file);
}
Clipboard.SetFileDropList(strcoll);
} /// <summary>
/// 复制或剪切文件到剪切板
/// </summary>
/// <param name="filePath">文件路径数组</param>
/// <param name="cut">true:剪切;false:复制</param>
public static void CopyFile(string filePath, bool cut = false)
{
if (filePath == null) return;
CopyFileList(new[] { filePath }, cut);
}
/// <summary>
/// 复制或剪切文件到剪切板
/// </summary>
/// <param name="files">文件路径数组</param>
/// <param name="cut">true:剪切;false:复制</param>
public static void CopyFileList(string[] files, bool cut = false)
{
if (files == null) return;
IDataObject data = new DataObject(DataFormats.FileDrop, files);
MemoryStream memo = new MemoryStream();
byte[] bytes = new byte[] { (byte)(cut ? : ), , , };
memo.Write(bytes, , bytes.Length);
data.SetData("PreferredDropEffect", memo);
Clipboard.SetDataObject(data, false);
} /// <summary>
/// 获取剪贴板中的文件列表(方法)
/// </summary>
/// <returns>System.Collections.List<string>返回剪切板中文件路径集合</returns>
public static List<string> GetClipboardList()
{
List<string> clipboardList = new List<string>();
StringCollection sc = Clipboard.GetFileDropList();
foreach (var listFileName in sc)
{
clipboardList.Add(listFileName);
}
return clipboardList;
}
}

Winform调用系统的剪切,复制,粘贴文件功能的更多相关文章

  1. Winform/WPF Clipboard之剪切复制粘贴

    Winform // <summary> /// 复制或剪切文件至剪贴板(方法) /// </summary> /// <param name="files&q ...

  2. VBS脚本代码(手工编写---在windows 7上调用系统对话框,来选择文件)

    '=========================================================================='' VBScript Source File - ...

  3. 第十二篇 -- QMainWindow与QAction(剪切-复制-粘贴)

    效果图: 按照上一节的方法,将剪切-复制-粘贴图标放置到工具栏后,为其指定槽函数.这些功能无需自己编写代码来实现,QPlainTextEdit提供了实现这些编辑功能的槽函数,如cut().copy() ...

  4. linux命令の删除文件和文件夹 复制粘贴文件和文件夹

    声明:此博文来自百度经验http://jingyan.baidu.com/article/642c9d34dcba80644a46f72d.html,谢谢分享! linux删除目录很简单,很多人还是习 ...

  5. Oracle SQL Developer 编辑区不能删除,后退,空格,复制粘贴等功能都失效的解决办法

    Oracle SQL Developer 编辑区不能删除,后退,空格,复制粘贴等功能都失效的解决办法 解决: 打开菜单并选择Tools-prefrence-Accelerators-Load Pres ...

  6. 无法向Windows服务器复制粘贴文件

    在向服务器拷贝文件的时候卡死,直接任务管理器结束应用程序,但是随之引发一个问题,就是之后不能从本地向服务器拷贝文件了,只能服务器自己复制粘贴. 解决办法重启rdpclip.exe,先在任务管理器中结束 ...

  7. C# WinForm:DataTable中数据复制粘贴操作的实现

    1. 需要实现类似于Excel的功能,就是在任意位置选中鼠标起点和终点所连对角线所在的矩形,进行复制粘贴. 2. 要实现这个功能,首先需要获取鼠标起点和终点点击的位置. 3. 所以通过GridView ...

  8. windows doc命令复制粘贴文件

    # 删除前端文件 rmdir /s/q E:\yuanbo2019\public\static del E:\yuanbo2019\public\index.html @echo off ::被复制的 ...

  9. c#DataGridView复制粘贴删除功能

    //可在dgv中复制.剪切.粘贴.删除数据 /// <summary> /// DataGridView复制 /// </summary> /// <param name ...

随机推荐

  1. hypervisor与VMware共存方法

    bcdedit /set hypervisorlaunchtype offbcdedit /set hypervisorlaunchtype auto

  2. char(10)和VARCHAR(10)主要的区别是什么?

    区别: 1.CHAR的长度是固定的,而VARCHAR2的长度是可以变化的, 如: 存储字符串“abc", 对于CHAR (10),表示你存储的字符将占10个字节(包括7个空字符), 而同样的 ...

  3. 项目管理学习笔记之五.沟通协调能力II

    二.沟通模型:一个双向交流的过程 沟通模型:编     码---------------->信息-----------------> 解码&歧义发送者               ...

  4. JavaScript(六)——实现图片上下或者左右无缝滚动

    /*! jQuery v1.8.3 jquery.com | jquery.org/license */ (function(e,t){function _(e){var t=M[e]={};retu ...

  5. javascript-抽象工厂模式

    抽象工厂模式笔记   1.抽象工厂模式创建多个抽象类,创建出的结果是一个类簇(这里是抽象类的集合)   2.抽象工厂中传入的父类是否是抽象工厂方法创建的抽象类进行判断,不是则抛出错误   3.子类通过 ...

  6. Dubbo 分布式服务框架(spring、zookeeper)

    DUBBO DUBBO是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,是阿里巴巴SOA服务化治理方案的核心框架, alibaba资源 源码:https://github.com ...

  7. 0009《SQL必知必会》笔记05-表的创建与约束

    1.创建表:用CREATE TABLE 语句,要指明:表名(不能与现有表名重复).列名.每列的数据类型 CREATE TABLE product ( prod_id ), vend_id ), pro ...

  8. MYSQL的JOB

    要让JOB顺利运行,必须要打开MYSQL的定时器. -- 查看是否开启定时器 SHOW VARIABLES LIKE '%sche%'; -- 开启定时器 0:off 1:on -- 这个需要最高权限 ...

  9. vue相关的 helloword示例

    <!DOCTYPE html><html> <head> <title></title> <script src="http ...

  10. JVM探索之内存管理(三)

    上节我们介绍了JVM垃圾回收的原则,还有几个垃圾收集算法:标记-清除算法.复制算法.标记整理算法.分代收集算法:现在将要说HotSpt的垃圾收集器,这小节将只是理论. Java虚拟机规范对垃圾收集器的 ...