999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于C#語言的電子文件名批量處理及在歸檔管理中的應用

2021-03-22 02:56:46魏自鵬
電腦知識與技術 2021年6期
關鍵詞:語言

魏自鵬

摘要:針對電子文件向檔案數據庫歸檔環(huán)節(jié),往往需要大量更改文件名的問題,文章梳理了如何借助C#語言編寫相應的桌面應用程序,以實現文件名的批量更改和電子文件的順利入庫,從而打通電子文件向檔案數據庫轉入的“最后一公里”,切實提高工作效率,節(jié)省人力資源。

關鍵詞:C#語言;電子文件;批量處理;更名;歸檔

中圖分類號:G270.7? ? ? 文獻標識碼:A

文章編號:1009-3044(2021)06-0083-03

Abstract: In view of the problem that a large number of file names need to be changed in the process of filing electronic documents into archives database, this paper combs out how to write corresponding desktop application programs with the help of C# language, so as to realize batch change of file names and smooth storage of electronic documents, so as to get through the "last kilometer" of electronic documents transferred to archives database, effectively improve work efficiency and save manpower resources.

Key words: C# language; electronic documents; batch processing; rename; filing

隨著計算機技術的普及應用以及檔案信息化、數字化的不斷推進,電子文件(包括紙質檔案數字化副本)大量產生,其分類整理、數據掛接入庫等已成為常態(tài)化工作[1]。然而,工作中電子文件名多數不規(guī)范或不符合要求,需要重新修改,以便更快捷地掛接入庫。面對大量的電子文件名更改工作,如能實現批量自動處理,將能大幅度提高工作效率和準確性。為此,本文通過對檔案工作實踐和流程的深入思考,探討如何利用C#編程語言編寫相應桌面應用程序以實現電子文件名批量更改和歸檔入庫。

1 設計概述

電子文件名批量處理常用功能包括替換、刪除、添加前后綴、提取、截取、整體更改等。總體思路是通過遍歷文件夾中的所有電子文件,然后提取電子文件名并轉化為字符串,通過對字符串的修改處理,最后再對文件重新命名。這些功能可以集成簡單的Windows桌面應用程序工具。

2 代碼實現

電子文件名批量處理功能的代碼實現主要運用String、StringBuilder、File、FileInfo、Directory和DirectoryInfo類以及C#與EXCEL表的互操作[2-3]。

2.1 文件名批量替換

本功能可以實現文件名字符的批量替換,如將“【2019】”全部替換為“〔2020〕”。為便于說明問題,先做一個簡單的桌面應用實例(圖1),主要代碼如下:

[? ? ? ? private void btnSelect_Click(object sender, EventArgs e)

{

//選擇文件夾

FolderBrowserDialog folderPath = new FolderBrowserDialog();

if (folderPath.ShowDialog() == DialogResult.OK)

{

this.textBoxFolder.Text = folderPath.SelectedPath;

}

}

private void btnBegin_Click(object sender, EventArgs e)

{

DirectoryInfo directoryInfo = new DirectoryInfo(textBoxFolder.Text);

foreach (FileInfo file in directoryInfo.GetFiles())

{

String strb = file.Name;

strb = strb.Replace(textBoxSource.Text, textBoxReplace.Text);

Boolean boolean = true;

if (file.Name.Equals(strb))

boolean = false;//目的是區(qū)分文件名中字符的大小寫,比如將大寫Y改為小寫y,因為Windows中文件名是不區(qū)分大小寫的;

if (boolean)

file.MoveTo(@textBoxFolder.Text + "\\" + strb);

}

} ]

本實例能夠實現文件夾中文件名的批量替換功能,并區(qū)分字符的大小寫。為簡明起見,本文所列實例只給出主要代碼,省去名稱空間、類庫的引用以及異常處理等,僅供參考。

2.2 添加文件名前、后綴

本功能可實現在文件名前面或后面添加相應字符,也可根據需要添加遞增數字,如在添加固定前綴“WS.2020-”后自動添加4位數遞增數字“0001-n”,其簡單桌面式樣如圖2所示。

1)添加固定前綴的主要代碼

[foreach (FileInfo file in directoryInfo.GetFiles())

{

StringBuilder strb = new StringBuilder(file.Name);

strb.Insert(0, textBoxPrefix.Text.ToString());

file.MoveTo(@textBoxFolder.Text + "\\" + strb);

} ]

2)添加遞增前綴的主要代碼

[private void SortAsFileName(ref FileInfo[] arrFiles)

{

Array.Sort(arrFiles, delegate (FileInfo x, FileInfo y) { return x.Name.CompareTo(y.Name); });

}

DirectoryInfo directoryInfo = new DirectoryInfo(textBoxFolder.Text);

int i = 0;

try

{

i = Convert.ToInt32(textBoxSuffix.Text);

}

catch (Exception)

{

MessageBox.Show("輸入格式不正確,默認從0開始!");

}

FileInfo[] arrFiles = directoryInfo.GetFiles();

SortAsFileName(ref arrFiles);//按照文件名稱進行排序,也可根據需要按照其他方式排序;

foreach (FileInfo file in arrFiles)

{

StringBuilder strb = new StringBuilder(file.Name);

int length = textBoxPrefix.Text.ToString().Length;

strb.Insert(length, String.Format("{0:D4}", i++));//保留4位有效數字,不足部分補零;

file.MoveTo(@textBoxFolder.Text + "\\" + strb);

} ]

添加后綴功能與前綴類似,不再贅述。

2.3 文件名批量截取

本功能主要實現將文件名中的部分字符截取并保留下來作為文件名(當然,同一文件夾中截取后的文件名不能重復),根據需要可設置截取的首尾字符或截取的起始字符位置數和保存長度(圖3),如從第2個字符開始,截取6個字符,然后將文件名改為截取后的字符串名。主要代碼如下:

[foreach (FileInfo file in directoryInfo.GetFiles())

{

string strb = file.Name;

int index1 = int.Parse(textBoxStart.Text);

int index2 = int.Parse(textBoxLength.Text);

int index3 = strb.LastIndexOf(".");

string str1 = strb.Substring(index1 - 1, index2);

string str2 = strb.Substring(index3);

StringBuilder strCombine = new StringBuilder(str1);

strCombine.Append(str2);

file.MoveTo(@textBoxFolder.Text + "\\" + strCombine.ToString());

} ]

2.4 文件名提取及與EXCEL表的互操作

本功能可實現將文件夾中的文件名提取出來然后導入EXCEL表中的某一列(如第1列,設為“原文件名”列),然后再在EXCEL表中的某一列(如第5列,設為“新文件名”列)對應行位置輸入要更改的文件名,之后再將文件夾中的文件名(“原文件名”列)更改為新的文件名(“新文件名”列),這樣可以利用EXCEL表實現文件名的提取和任意修改[4]。其主要代碼如下:

1)文件名提取并導入EXCEL表

[string filePath = @"D:\ myExcel.xlsx";//設置要導入的EXCEL表保存路徑

dynamic appExcel = new Application();

appExcel.DisplayAlerts = false;

appExcel.Visible = true;

dynamic excelDoc = appExcel.Workbooks.Add(true);

dynamic worksheet1 = excelDoc.Sheets[1];

worksheet1.Cells[1, "a"] = "原文件名";

worksheet1.Cells[1, "e"] = "新文件名";

int count = 1;

FileInfo[] arrFiles = directoryInfo.GetFiles();

SortAsFileName(ref arrFiles);

foreach (FileInfo file in arrFiles)

{

count++;

worksheet1.Cells[count, "a"] = file.Name;

}

excelDoc.SaveAs(filePath); ]

2) 根據EXCEL表中“新文件名”列的內容修改文件名

[dynamic excelDoc = appExcel.Workbooks.Open(filePath);

dynamic worksheet1 = excelDoc.Sheets[1];

foreach (FileInfo file in directoryInfo.GetFiles())

{

string strb = file.Name;

int index = strb.LastIndexOf(".");

string str1 = strb.Substring(0, index);

string str2;

for (int i = 2; i <= directoryInfo.GetFiles().Length + 1; i++)

{

if (worksheet1.Cells[i, "e"].value == null||worksheet1.Cells[i, "e"].value.ToString() == ""? )

continue;

if (strb.Equals(worksheet1.Cells[i, "a"].value.ToString()))

{

str2 = worksheet1.Cells[i, "e"].value.ToString();

strb = strb.Replace(str1, str2);

}

}

file.MoveTo(@textBoxFolder.Text + "\\" + strb);

} ]

3 實際應用

上述功能可大量應用于電子文件、數字化檔案副本等向檔案系統(tǒng)數據庫掛接歸檔過程中。通常情況下,檔案數據庫在掛接電子文件時是按照“檔號”“文號”“題名”等字段進行批量掛接的,然而日常工作中形成的電子文件名往往與數據庫中的字段不一致,且多數不夠統(tǒng)一規(guī)范,甚至無序,這就需要對電子文件名進行重新修改和調整,以便能夠批量掛接入庫。如某文件夾下一些電子文件(圖4),欲批量修改為遞增“檔號”,可先添加固定前綴 “Z119-WS.2020-BGS-Y-”[5],再添加遞增起始數字“1”,然后再運用截取功能從首字符開始截取23個字符即可實現按“檔號”重新命名(圖5),以實現電子文件按“檔號”自動掛接進入檔案數據庫。該示例也可運用文件名提取功能,先提取出電子文件名保存至EXCEL表中第1列(圖6),再根據需要在第5列中填充要修改的新文件名(圖7),最后通過程序也能實現批量更名目的(圖5)。

4 結束語

本文所有代碼都在Visual Studio 2019中進行了成功調試,并經過大量實際工作的驗證,在檔案數字化加工、電子文件掛接入庫中具有較多應用,較好地打通了電子文件向數據庫歸檔的“最后一公里”,實現電子文件歸檔的全程加速,并以客觀標準代替主觀操作,能夠切實提高工作效率和準確性,節(jié)省大量人力資源。日常工作中,檔案工作者應積極嘗試運用計算機等先進技術,深入思考檔案工作流程,創(chuàng)新工作方法,努力減少重復繁雜的工作,不斷提高檔案工作的自動化和智能化水平。

參考文獻:

[1] 龐海濤.檔案數字化前處理工作概論[M].北京:中國文史出版社,2018.

[2] Benjamin Perkins,Jacob Vibe Hammer,Jon D Reid.C#入門經典[M].北京:清華大學出版社,2016.

[3] 向燕飛.C#程序設計案例教程[M].北京:清華大學出版社,2018.

[4] 軟件開發(fā)技術聯盟.C#開發(fā)實例大全-提高卷[M].北京:清華大學出版社,2016.

[5] 李明華.歸檔文件整理規(guī)則解讀[M].北京:中國文史出版社,2016.

【通聯編輯:謝媛媛】

猜你喜歡
語言
詩之新,以語言創(chuàng)造為基
中華詩詞(2023年8期)2023-02-06 08:51:28
語言是刀
文苑(2020年4期)2020-05-30 12:35:30
讓語言描寫搖曳多姿
多向度交往對語言磨蝕的補正之道
累積動態(tài)分析下的同聲傳譯語言壓縮
日常語言與播音語言
新聞傳播(2016年10期)2016-09-26 12:15:04
語言技能退化與語言瀕危
我有我語言
論語言的“得體”
語文知識(2014年10期)2014-02-28 22:00:56
Only Words慎用你的語言
主站蜘蛛池模板: 久久人与动人物A级毛片| 精品人妻一区二区三区蜜桃AⅤ| 久久免费观看视频| 久久午夜影院| 91最新精品视频发布页| 久久久久国产精品嫩草影院| 免费在线观看av| 免费日韩在线视频| 亚洲综合婷婷激情| 中文字幕在线不卡视频| 成人字幕网视频在线观看| 9啪在线视频| 色香蕉影院| 国产成人综合网在线观看| 丁香六月激情婷婷| 五月天丁香婷婷综合久久| 先锋资源久久| 成人另类稀缺在线观看| 中国黄色一级视频| 国产视频欧美| 99视频在线观看免费| 欧美在线综合视频| 国产大全韩国亚洲一区二区三区| 亚洲人成网站在线观看播放不卡| 91视频99| 欧美第一页在线| 欧美特黄一级大黄录像| 在线播放国产一区| 91年精品国产福利线观看久久| 成人永久免费A∨一级在线播放| A级全黄试看30分钟小视频| jijzzizz老师出水喷水喷出| 久久一本精品久久久ー99| 国产精品午夜福利麻豆| 欧美精品成人| 国产在线自在拍91精品黑人| 国产欧美日韩在线一区| 天堂成人av| 视频二区欧美| 亚洲高清资源| 国产在线麻豆波多野结衣| 无码人妻免费| 国产网站免费看| 91久草视频| 亚洲欧美成aⅴ人在线观看| 麻豆精品在线播放| 波多野结衣无码中文字幕在线观看一区二区 | 中文字幕在线看| 999在线免费视频| 园内精品自拍视频在线播放| 国产青榴视频| 精品国产99久久| 国产在线视频自拍| 国产成人福利在线视老湿机| 5555国产在线观看| 99久久国产综合精品2020| 无码日韩精品91超碰| 婷婷综合缴情亚洲五月伊| 97精品国产高清久久久久蜜芽| 国内精品自在欧美一区| 国产成人精品视频一区二区电影 | 国产精品永久久久久| 国产美女自慰在线观看| 高潮毛片免费观看| 福利国产在线| 久久久国产精品无码专区| 国产91精品最新在线播放| 亚洲天堂网在线观看视频| 亚洲手机在线| 亚洲国产天堂久久综合226114| 欧美人与动牲交a欧美精品| 日韩第一页在线| AV无码国产在线看岛国岛| 999福利激情视频| 欧美啪啪网| 色综合久久无码网| 国产欧美日韩精品第二区| 少妇精品网站| 国产精品亚洲一区二区三区z| 蝴蝶伊人久久中文娱乐网| 国产亚洲精品97在线观看| 久久国产香蕉|