usingMicrosoft.SharePoint;usingSystem;usingSystem.Collections.Generic;usingSystem.Configuration;usingSystem.Data;usingSystem.IO;usingSystem.Linq;usingSystem.Net;usingSystem.Text;usingSystem.Threading.Tasks;usingSystem.Web;namespace_20150928
{classPRogram
{staticvoidMain(string[] args)
{//[flash=500,400]http://www.knowsky.com/"/_layouts/15/images/icxlsx.png"[/flash]Console.WriteLine(HttpUtility.HtmlDecode("<div class="ExternalClass261ED404956E49D289332C8D5DE50427"><p><a href="/sites/00/0001/SiteAssets/Lists/Dialogue/AllItems/TCALProjectList.xlsx"><img width="16" height="16" class="ms-asset-icon ms-rtePosition-4" src="/_layouts/15/images/icxlsx.png" alt="" />TCALProjectList.xlsx</a></p></div>"));////string str = "http://baidu.com.cn/hello%20I%27ama apple/te%27st.txt";////Console.WriteLine(str.Length);//Console.ReadKey();stringmainSite = ConfigurationManager.AppSettings["SiteUrl"];stringsiteUrl = mainSite +"sites/"+"te"+"/"+"test"+"/";stringlistName ="test";stringfolderServerRelativeUrl ="/test/test/";
SPFolder folder=CreateFolderInList(siteUrl, listName, folderServerRelativeUrl);
folder= GetSubFolderNewSystem(folder,"test");
SPFolder folderNew=folder;stringstrURL ="";//web service get datastringfileName ="";
Stream stream=DownLoadAttachment(strURL);if(stream !=null)
{
MigrationFromFileToFile(folderNew, fileName, stream);
}stringbodystring ="<a href="+ folderNew.Url.Remove(0, mainSite.Length) + fileName +"[flash=500,400]http://www.knowsky.com/[/flash]><img src="+"/_layouts/15/images/icxlsx.png"+"/>"+ fileName +"</a>";
}publicstaticSPFolder CreateFolderInList(stringsiteUrl,stringlistName,stringfolderServerRelativeUrl)
{
SPFolder returnFolder=null;using(SPSite site =newSPSite(siteUrl))using(SPWeb web =site.OpenWeb())
{
SPList list=web.Lists[listName];
SPFolder folder=list.RootFolder;string[] folderNames = folderServerRelativeUrl.Split('/');foreach(stringfolderNameinfolderNames)
{if(!string.IsNullOrEmpty(folderName))
{boolexitFolder =false;if(folder.SubFolders.Count >0)
{foreach(SPFolder subFolderinfolder.SubFolders)
{if(subFolder.Name.Equals(folderName))
{
exitFolder=true;
folder=subFolder;
break;
}
}
}if(!exitFolder)
{//フォルダー作成folder.SubFolders.Add(folderName);
folder=folder.SubFolders[folderName];
}
}
}
returnFolder=folder;
}returnreturnFolder;
}publicstaticSPFolder GetSubFolderNewSystem(SPFolder parentFolder,stringfolderName)
{
SPFolder subFolder=null;try{
subFolder=parentFolder.SubFolders[folderName];if(!subFolder.Exists)
{
parentFolder.SubFolders.Add(folderName);
subFolder=parentFolder.SubFolders[folderName];
}
}catch{
parentFolder.SubFolders.Add(folderName);
subFolder=parentFolder.SubFolders[folderName];
}returnsubFolder;
}publicstaticStream DownLoadAttachment(stringstrURL)
{
Stream stream;try{
WebClient myWebClient=newWebClient();
myWebClient.Credentials=newNetworkCredential(ConfigurationManager.AppSettings["OldUserName"], ConfigurationManager.AppSettings["OldUserPassWord"], ConfigurationManager.AppSettings["OldDomain"]);byte[] pagedata =myWebClient.DownloadData(strURL);
stream=newMemoryStream(pagedata);
myWebClient.Dispose();returnstream;
}catch(Exception ex)
{returnnull;
}
}publicstaticvoidMigrationFromFileToFile(SPFolder folderNew,stringfileName, Stream stream)
{
SPFile subFileNew=null;byte[] contents =StreamToBytes(stream);if(contents !=null)
{
subFileNew= folderNew.Files.Add(folderNew.Url +"/"+ fileName, contents,true);
}
}publicstaticbyte[] StreamToBytes(System.IO.Stream stream)
{intmaxsize = Int32.Parse(ConfigurationManager.AppSettings["maxSize"].ToString());using(System.IO.MemoryStream ms =newSystem.IO.MemoryStream())
{byte[] bytes =newbyte[maxsize];intread;while((read = stream.Read(bytes,0, bytes.Length)) >0)
{
ms.Write(bytes,0, read);if(ms.ToArray().Length >maxsize)
{returnnull;
}
}returnms.ToArray();
}
}
}
}