一種在系統(tǒng)中復(fù)制粘貼文件的方法
【專利摘要】一種在系統(tǒng)中復(fù)制粘貼文件的方法,涉及數(shù)據(jù)轉(zhuǎn)送,尤其涉及各種系統(tǒng)之間的復(fù)制粘貼功能,包括判斷是系統(tǒng)內(nèi)部文件還是系統(tǒng)外部文件步驟;粘貼步驟:當(dāng)判斷文件為系統(tǒng)內(nèi)部文件時(shí),將該文件數(shù)據(jù)的Tag值進(jìn)行封裝,當(dāng)點(diǎn)擊復(fù)制時(shí),將文件數(shù)據(jù)的Tag值保存在變量中,當(dāng)在粘貼目標(biāo)列表中點(diǎn)擊粘貼時(shí),分析變量中的文件數(shù)據(jù),將文件數(shù)據(jù)顯示在粘貼目標(biāo)列表中;當(dāng)判斷文件為系統(tǒng)外部文件時(shí),先判斷剪切板中是否有文件數(shù)據(jù),當(dāng)有文件數(shù)據(jù)時(shí),將剪切板中已有文件數(shù)據(jù)顯示在粘貼目標(biāo)列表中。該方法不需要復(fù)雜的彈出界面,大大地提高了效率和用戶體驗(yàn)。
【專利說明】一種在系統(tǒng)中復(fù)制粘貼文件的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)轉(zhuǎn)送,尤其涉及各種應(yīng)用系統(tǒng)之間的復(fù)制粘貼功能。
【背景技術(shù)】
[0002]目前,隨著智能網(wǎng)突飛猛進(jìn)的發(fā)展,應(yīng)用系統(tǒng)層出不窮,而其采用的復(fù)制粘貼方法都是通過復(fù)雜的彈出界面查找選擇進(jìn)行添加,這種復(fù)制粘貼方法存在一定的不便利性,所以,如何提出復(fù)制粘貼效率,提高用戶體驗(yàn)成為目前亟待解決的技術(shù)問題。
【發(fā)明內(nèi)容】
[0003]為解決上述問題,本發(fā)明提出一種在系統(tǒng)中復(fù)制粘貼文件的方法,包括以下步驟:
判斷步驟:判斷 e.Data.GetDataPresent (DataFormats.Serializable)是否為true,當(dāng)判斷為true時(shí)表示該文件為系統(tǒng)內(nèi)部文件;判斷e.Data.GetDataPresent (DataFormats.FileDrop, false)是否為 true,當(dāng)判斷為 true 時(shí),表不該文件為系統(tǒng)外部文件;
粘貼步驟:當(dāng)判斷文件為系統(tǒng)內(nèi)部文件時(shí),將該文件數(shù)據(jù)的Tag值封裝為Dict1nary〈string, object〉,當(dāng)點(diǎn)擊復(fù)制時(shí),將文件數(shù)據(jù)的Tag值保存在public staticList<Dict1nary<string, object>> CopyDatas = new List<Dict1nary<string,object? ()中,當(dāng)在粘貼目標(biāo)列表中點(diǎn)擊粘貼時(shí),分析CopyDatas中的文件數(shù)據(jù),將文件數(shù)據(jù)顯不在粘貼目標(biāo)列表中;
當(dāng)判斷文件為系統(tǒng)外部文件時(shí),用IsHaveSystemFileO判斷剪切板中是否有文件數(shù)據(jù),當(dāng) IsHaveSystemFile ()返回為 true 時(shí),用 SendFileMessage (int p_identif ier,object _obj)將剪切板中已有文件數(shù)據(jù)顯示在粘貼目標(biāo)列表中。
[0004]當(dāng)判斷文件為系統(tǒng)內(nèi)部文件,將該文件數(shù)據(jù)的Tag值封裝為Dict1nary〈string,object〉時(shí),封裝格式為文件唯一編號、版本時(shí)間、文件名稱、文件類型。
[0005]當(dāng)判斷文件為系統(tǒng)外部文件時(shí),用SendFileMessage (int p_identifier, object_obj)取出剪切板中已有文件數(shù)據(jù)的本地路徑,將粘貼目標(biāo)列表的句柄和已有文件數(shù)據(jù)的本地路徑通過消息發(fā)送到文件模塊,文件模塊接受消息后將文件數(shù)據(jù)上傳服務(wù)器并返回文件唯一編號和版本時(shí)間,將文件唯一編號、版本時(shí)間、文件名稱、文件類型、句柄向系統(tǒng)中所有模塊發(fā)送,當(dāng)匹配到相同句柄時(shí),將文件數(shù)據(jù)顯示在粘貼目標(biāo)列表中。
[0006]本方法不需要復(fù)雜的彈出界面通過查找選擇將文件添加到系統(tǒng)中,對于無論是系統(tǒng)內(nèi)部還是系統(tǒng)外部的文件數(shù)據(jù)都很方便的添加到系統(tǒng)中,大大地提高了效率和用戶體驗(yàn)。
【具體實(shí)施方式】
[0007]本發(fā)明發(fā)明的一種在系統(tǒng)中復(fù)制粘貼文件的方法,其包括以下步驟: 設(shè)置步驟:在系統(tǒng)的類管理DragFileClass中定義DragDrop和DragEnter,設(shè)置DragDrop 為 true,表不允許拖動;設(shè)置 DragEntere.Effect=e.Al1wedEffect,表不允許在目標(biāo)列表中拖動;
判斷步驟:判斷 e.Data.GetDataPresent(DataFormats.Serializable)是否為true,當(dāng)判斷為true時(shí)表示該文件為系統(tǒng)內(nèi)部文件;判斷e.Data.GetDataPresent (DataFormats.FileDropj false)是否為 true,當(dāng)判斷為 true 時(shí),表不該文件為系統(tǒng)外部文件;
粘貼步驟:
(O當(dāng)判斷文件為系統(tǒng)內(nèi)部文件時(shí),將該文件數(shù)據(jù)的Tag值封裝為Dict1nary<string, object〉,封裝格式為文件唯一編號、版本時(shí)間、文件名稱、文件類型,當(dāng)通過點(diǎn)擊復(fù)制時(shí),將數(shù)據(jù)的Tag值保存在public static List〈Dict1nary〈string,object〉〉CopyDatas = new List<Dict1nary<string, object? ()中,當(dāng)?shù)秸迟N目標(biāo)列表中點(diǎn)擊粘貼時(shí),將CopyDatas中的分析出來,將文件數(shù)據(jù)顯示在目標(biāo)列表中;
(2)當(dāng)判斷文件為系統(tǒng)外部文件時(shí)
用IsHaveSystemFileO判斷剪切板中已有文件數(shù)據(jù),判斷方法為:
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;
}
當(dāng) IsHaveSystemFileO 返回為 true 時(shí),用 SendFileMessage(int p_identifier,object —obj)取出剪切板中已有文件的本地路徑,將粘貼目標(biāo)列表的句柄和已有文件的本地路徑通過消息發(fā)送到文件模塊,文件模塊接受消息后將文件數(shù)據(jù)上傳服務(wù)器并返回文件唯一編號和版本時(shí)間,將文件唯一編號、版本時(shí)間、文件名稱、文件類型、句柄向系統(tǒng)中所有模塊發(fā)送,當(dāng)匹配到相同句柄時(shí),將文件數(shù)據(jù)顯示在粘貼目標(biāo)列表中;
/// 〈summary>
///添加系統(tǒng)文件
/// </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);
}
【權(quán)利要求】
1.一種在系統(tǒng)中復(fù)制粘貼文件的方法,其特征在于,包括以下步驟: 判斷步驟:判斷 e.Data.GetDataPresent (DataFormats.Serializable)是否為true,當(dāng)判斷為true時(shí)表示該文件為系統(tǒng)內(nèi)部文件;判斷e.Data.GetDataPresent (DataFormats.FileDrop, false)是否為 true,當(dāng)判斷為 true 時(shí),表不該文件為系統(tǒng)外部文件; 粘貼步驟:當(dāng)判斷文件為系統(tǒng)內(nèi)部文件時(shí),將該文件數(shù)據(jù)的Tag值封裝為Dict1nary〈string, object〉,當(dāng)點(diǎn)擊復(fù)制時(shí),將文件數(shù)據(jù)的Tag值保存在public staticList<Dict1nary<string, object>> CopyDatas = new List<Dict1nary<string,object? ()中,當(dāng)在粘貼目標(biāo)列表中點(diǎn)擊粘貼時(shí),分析CopyDatas中的文件數(shù)據(jù),將文件數(shù)據(jù)顯不在粘貼目標(biāo)列表中; 當(dāng)判斷文件為系統(tǒng)外部文件時(shí),用IsHaveSystemFileO判斷剪切板中是否有文件數(shù)據(jù),當(dāng) IsHaveSystemFile ()返回為 true 時(shí),用 SendFileMessage (int p_identif ier,object _obj)將剪切板中已有文件數(shù)據(jù)顯示在粘貼目標(biāo)列表中。
2.如權(quán)利要求1所述的一種在系統(tǒng)中復(fù)制粘貼文件的方法,其特征在于,當(dāng)判斷文件為系統(tǒng)內(nèi)部文件,將該文件數(shù)據(jù)的Tag值封裝為Dict1nary〈string, object〉時(shí),封裝格式為文件唯一編號、版本時(shí)間、文件名稱、文件類型。
3.如權(quán)利要I所述的一種在系統(tǒng)中復(fù)制粘貼文件的方法,其特征在于,當(dāng)判斷文件為系統(tǒng)外部文件時(shí),用 SendFileMessage (int p_identifier, object _obj)取出剪切板中已有文件數(shù)據(jù)的本地路徑,將粘貼目標(biāo)列表的句柄和已有文件數(shù)據(jù)的本地路徑通過消息發(fā)送到文件模塊,文件模塊接受消息后將文件數(shù)據(jù)上傳服務(wù)器并返回文件唯一編號和版本時(shí)間,將文件唯一編號、版本時(shí)間、文件名稱、文件類型、句柄向系統(tǒng)中所有模塊發(fā)送,當(dāng)匹配到相同句柄時(shí),將文件數(shù)據(jù)顯示在粘貼目標(biāo)列表中。
【文檔編號】G06F9/44GK104346155SQ201310334090
【公開日】2015年2月11日 申請日期:2013年8月3日 優(yōu)先權(quán)日:2013年8月3日
【發(fā)明者】丁力 申請人:鎮(zhèn)江金鈦軟件有限公司