SharePoint 2010 文檔管理之過期歸檔工具


  前言:使用過SharePoint的人都知道,SharePoint對於操作是便捷的,但是對於數據量承載卻是不令人滿意的,這樣,就要求我們需要更加合理的使用,規范大家的使用規則和習慣,所以,定期清理不必要的文檔也就成為了一個問題。

  考慮到這一點,我覺得寫一個小工具,用來實現文檔歸檔,是比較方便的辦法。當然,如果你願意,可以封裝為TimerJob或者Windows Service都是沒有問題的,甚至於Windows計划任務也都是可行的,只要你願意。

一、 界面設計:

clip_image001

  如上圖,首先需要輸入下載文檔需要的用戶名、密碼、域的名字,否則我們是沒有權限下載文檔的;

  然后是站點地址,打開SPSite,會同時加載出來所有的SPWeb;

  然后選擇我們需要的SPWeb,會自動加載出來所有的文檔庫;

  選擇我們需要的文檔庫,選擇日期,早於這個日期的所有文檔,都在歸檔的范圍內;

  勾選自動刪除已歸檔文檔,這樣會刪除已經下載到指定路徑的文檔,並且不會出現在回收站。

二、 設計思路:

  很簡單的思路,大神勿噴,感謝!

  基於SharePoint 2010 Server版本,服務器端對象模型,需要運行在服務器上。

  通過服務器端對象模型,獲取所有的SPListItem集合,通過WebClient對象,把所有早於歸檔日期的文檔下載下來,然后Item.Delete()掉已經下載了的文檔,當然,只是為了完成歸檔的任務,沒有太豐富的功能。

  如果不刪除文檔庫的文檔,也可以使用它來下載文檔庫的文檔,感覺比在Windows資源管理器里打開,進行復制粘貼的速度要快一些。

三、 部分代碼:

  批量刪除部分的代碼,沒有通過Caml語句篩選,可能有些很X很暴力,還請見諒,需要的話,可以優化。

SPList list = web.Lists[ListID];

SPListItemCollection itemcoll = list.Items;

string strURL = string.Empty;

int maxNum = itemcoll.Count;

progressBarBackUp.Maximum = maxNum;

for (int i = maxNum - 1; i >= 0; i--)

{

try

{

if (Convert.ToDateTime(itemcoll[i]["Created"].ToString()) > Convert.ToDateTime(dateTimePicker1.Text))//可以優化~~~~~~~~~

{

continue;

}

strURL = web.Url + "/" + itemcoll[i].Url;

BackUpDoc(strURL);

if (cbAutoDel.Checked)

{

itemcoll[i].Delete();

//itemcoll[i].Update();

}

}

catch

{

}

progressBarBackUp.Value ++;

}

 

  如下,下載文檔的方法,通過URL下載文檔到指定路徑;

Ø public void BackUpDoc(string url)

Ø {

Ø try

Ø {

Ø string strFileName = string.Empty;

Ø int l1 = url.LastIndexOf('/');

Ø strFileName = "/" + url.Substring(l1, url.Length - l1);

Ø NetworkCredential nc = new NetworkCredential(tbUserName.Text, tbPassWord.Text, tbDomain.Text);

Ø WebClient wc = new WebClient();

Ø wc.Credentials = nc;

Ø byte[] file = wc.DownloadData(url);

Ø File.WriteAllBytes(tbSavePath.Text + strFileName, file);

Ø }

Ø catch

Ø {

Ø }

Ø }

四、 功能演示

  首先,我在文檔庫<知識積累>里面,批量上傳一些文檔,因為是測試,都是一些比較亂七八糟的文檔,莫見怪~~~O(∩_∩)O~

clip_image002

  然后,打開工具,輸入用戶名、密碼、域名;輸入網站地址,打開網站;選擇站點,選擇文檔庫;選擇時間,點擊歸檔,運行如下圖:

clip_image003

  如下圖,都已經下載到桌面上的ls文件夾中了

clip_image004

  查看原來的文檔庫,刷新看一下,如下圖:

clip_image005

  查看回收站,也沒有我們刪除的文檔,如下圖:

clip_image006

  工具下載地址:http://files.cnblogs.com/jianyus/DocLibBackUpTool.rar

  后記:隨便寫一個練手的工具,有興趣的可以看看,大神勿噴~~最近有點怕怕了,都不敢寫東西了,其實,本意就是分享~~有交流的可以留言,或者加入我的SharePoint QQ群,大家一起交流~~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM