一种在系统中复制粘贴文件的方法
【专利摘要】一种在系统中复制粘贴文件的方法,涉及数据转送,尤其涉及各种系统之间的复制粘贴功能,包括判断是系统内部文件还是系统外部文件步骤;粘贴步骤:当判断文件为系统内部文件时,将该文件数据的Tag值进行封装,当点击复制时,将文件数据的Tag值保存在变量中,当在粘贴目标列表中点击粘贴时,分析变量中的文件数据,将文件数据显示在粘贴目标列表中;当判断文件为系统外部文件时,先判断剪切板中是否有文件数据,当有文件数据时,将剪切板中已有文件数据显示在粘贴目标列表中。该方法不需要复杂的弹出界面,大大地提高了效率和用户体验。
【专利说明】一种在系统中复制粘贴文件的方法
【技术领域】
[0001]本发明涉及数据转送,尤其涉及各种应用系统之间的复制粘贴功能。
【背景技术】
[0002]目前,随着智能网突飞猛进的发展,应用系统层出不穷,而其采用的复制粘贴方法都是通过复杂的弹出界面查找选择进行添加,这种复制粘贴方法存在一定的不便利性,所以,如何提出复制粘贴效率,提高用户体验成为目前亟待解决的技术问题。
【发明内容】
[0003]为解决上述问题,本发明提出一种在系统中复制粘贴文件的方法,包括以下步骤:
判断步骤:判断 e.Data.GetDataPresent (DataFormats.Serializable)是否为true,当判断为true时表示该文件为系统内部文件;判断e.Data.GetDataPresent (DataFormats.FileDrop, false)是否为 true,当判断为 true 时,表不该文件为系统外部文件;
粘贴步骤:当判断文件为系统内部文件时,将该文件数据的Tag值封装为Dict1nary〈string, object〉,当点击复制时,将文件数据的Tag值保存在public staticList<Dict1nary<string, object>> CopyDatas = new List<Dict1nary<string,object? ()中,当在粘贴目标列表中点击粘贴时,分析CopyDatas中的文件数据,将文件数据显不在粘贴目标列表中;
当判断文件为系统外部文件时,用IsHaveSystemFileO判断剪切板中是否有文件数据,当 IsHaveSystemFile ()返回为 true 时,用 SendFileMessage (int p_identif ier,object _obj)将剪切板中已有文件数据显示在粘贴目标列表中。
[0004]当判断文件为系统内部文件,将该文件数据的Tag值封装为Dict1nary〈string,object〉时,封装格式为文件唯一编号、版本时间、文件名称、文件类型。
[0005]当判断文件为系统外部文件时,用SendFileMessage (int p_identifier, object_obj)取出剪切板中已有文件数据的本地路径,将粘贴目标列表的句柄和已有文件数据的本地路径通过消息发送到文件模块,文件模块接受消息后将文件数据上传服务器并返回文件唯一编号和版本时间,将文件唯一编号、版本时间、文件名称、文件类型、句柄向系统中所有模块发送,当匹配到相同句柄时,将文件数据显示在粘贴目标列表中。
[0006]本方法不需要复杂的弹出界面通过查找选择将文件添加到系统中,对于无论是系统内部还是系统外部的文件数据都很方便的添加到系统中,大大地提高了效率和用户体验。
【具体实施方式】
[0007]本发明发明的一种在系统中复制粘贴文件的方法,其包括以下步骤: 设置步骤:在系统的类管理DragFileClass中定义DragDrop和DragEnter,设置DragDrop 为 true,表不允许拖动;设置 DragEntere.Effect=e.Al1wedEffect,表不允许在目标列表中拖动;
判断步骤:判断 e.Data.GetDataPresent(DataFormats.Serializable)是否为true,当判断为true时表示该文件为系统内部文件;判断e.Data.GetDataPresent (DataFormats.FileDropj false)是否为 true,当判断为 true 时,表不该文件为系统外部文件;
粘贴步骤:
(O当判断文件为系统内部文件时,将该文件数据的Tag值封装为Dict1nary<string, object〉,封装格式为文件唯一编号、版本时间、文件名称、文件类型,当通过点击复制时,将数据的Tag值保存在public static List〈Dict1nary〈string,object〉〉CopyDatas = new List<Dict1nary<string, object? ()中,当到粘贴目标列表中点击粘贴时,将CopyDatas中的分析出来,将文件数据显示在目标列表中;
(2)当判断文件为系统外部文件时
用IsHaveSystemFileO判断剪切板中已有文件数据,判断方法为:
bool IsHaveSystemFile O
{
object _obj = Clipboard.GetData(DataFormats.FileDrop);
if (_obj == null | | _obj.ToStringO == return false;
String口 files = (String[])_obj;
string xml = string.Empty;
for (int i = 0; i < files.Length; i++)
{
String s = files[i];
if (System.10.File.Exists (s)) return true;
}
return false;
}
当 IsHaveSystemFileO 返回为 true 时,用 SendFileMessage(int p_identifier,object —obj)取出剪切板中已有文件的本地路径,将粘贴目标列表的句柄和已有文件的本地路径通过消息发送到文件模块,文件模块接受消息后将文件数据上传服务器并返回文件唯一编号和版本时间,将文件唯一编号、版本时间、文件名称、文件类型、句柄向系统中所有模块发送,当匹配到相同句柄时,将文件数据显示在粘贴目标列表中;
/// 〈summary>
///添加系统文件
/// </summary)
///〈param name=〃p—identifier,句柄 </param>
public void SendFileMessage (int p_identifier,object _obj)
{
if (_obj == null | | _obj.ToStringO == return;
String口 files = _obj as String口;
if (files == null | | files.Length <= 0) return;
string xml = string.Empty;
for (int i = 0; i < files.Length; i++)
{
String s = files[i];
if (!System.10.File.Exists (s)) continue;
xml +=s+ ((i == files.Length -1) ? ””: ,,\r\rO ;
}
if (string.1sNullOrEmpty(xml)) return;
SysMessage msg = SysMessage.Create (EnumMessageFlage.FileSysRightUpj xml, p—identifier,PluginNames.FileManagement);
PluginHelper.EventCenter.PostMessage(ref msg);
}
【权利要求】
1.一种在系统中复制粘贴文件的方法,其特征在于,包括以下步骤: 判断步骤:判断 e.Data.GetDataPresent (DataFormats.Serializable)是否为true,当判断为true时表示该文件为系统内部文件;判断e.Data.GetDataPresent (DataFormats.FileDrop, false)是否为 true,当判断为 true 时,表不该文件为系统外部文件; 粘贴步骤:当判断文件为系统内部文件时,将该文件数据的Tag值封装为Dict1nary〈string, object〉,当点击复制时,将文件数据的Tag值保存在public staticList<Dict1nary<string, object>> CopyDatas = new List<Dict1nary<string,object? ()中,当在粘贴目标列表中点击粘贴时,分析CopyDatas中的文件数据,将文件数据显不在粘贴目标列表中; 当判断文件为系统外部文件时,用IsHaveSystemFileO判断剪切板中是否有文件数据,当 IsHaveSystemFile ()返回为 true 时,用 SendFileMessage (int p_identif ier,object _obj)将剪切板中已有文件数据显示在粘贴目标列表中。
2.如权利要求1所述的一种在系统中复制粘贴文件的方法,其特征在于,当判断文件为系统内部文件,将该文件数据的Tag值封装为Dict1nary〈string, object〉时,封装格式为文件唯一编号、版本时间、文件名称、文件类型。
3.如权利要I所述的一种在系统中复制粘贴文件的方法,其特征在于,当判断文件为系统外部文件时,用 SendFileMessage (int p_identifier, object _obj)取出剪切板中已有文件数据的本地路径,将粘贴目标列表的句柄和已有文件数据的本地路径通过消息发送到文件模块,文件模块接受消息后将文件数据上传服务器并返回文件唯一编号和版本时间,将文件唯一编号、版本时间、文件名称、文件类型、句柄向系统中所有模块发送,当匹配到相同句柄时,将文件数据显示在粘贴目标列表中。
【文档编号】G06F9/44GK104346155SQ201310334090
【公开日】2015年2月11日 申请日期:2013年8月3日 优先权日:2013年8月3日
【发明者】丁力 申请人:镇江金钛软件有限公司