WSS 3.0 请教一下,如果用代码合并两个文件夹
如何用代码合并两个已经存在的文件夹?
使用SPFolder.MoveTo不行,调用完后两个文件夹并没有合并。
谢谢
[解决办法]
那就只能递归遍历转移文件了
[解决办法]
/// <summary>
/// 复制文件
/// </summary>
/// <param name="file">要复制的文件</param>
/// <param name="destUrl">目标路径</param>
private static void AddFile(SPFile sourceFile, string destUrl)
{
sourceFile.CopyTo(destUrl + "/" + sourceFile.Name, true);
}
/// <summary>
/// 复制文件夹
/// </summary>
/// <param name="sourceFolder">源文件夹</param>
/// <param name="destUrl">目标路径</param>
/// <param name="parentFolder">父目录路径</param>
private static void AddFolder(SPFolder sourceFolder, string destUrl, string parentFolder)
{
string folderPath = parentFolder == string.Empty ? sourceFolder.Name : parentFolder + "\\" + sourceFolder.Name;
string destFolderPath = parentFolder == string.Empty ? destUrl + "/" + sourceFolder.Name : destUrl + "/" + folderPath;
if (!SPContext.Current.Web.GetFolder(destFolderPath).Exists)
{
sourceFolder.CopyTo(destFolderPath);
}
else
{
foreach (SPFile file in sourceFolder.Files)
{
AddFile(file, destFolderPath);
}
foreach (SPFolder subFolder in sourceFolder.SubFolders)
{
AddFolder(subFolder, destUrl, folderPath);
}
}
}
调用AddFolder(item.Folder, destUrl, string.Empty);