从本地机器复制文件夹,从本地机器复制完整的文件和文件夹,即 用户选择的文件夹/目录路径必须完全[全部 选择路径中的文件]将被粘贴/复制到 托管Web应用程序的Web服务器中的文件夹。 ine到服务器中的文件夹
答案 0 :(得分:1)
好吧,我很难理解你的英语。据我所知,您的任务是在某个位置制作一个文件夹的精确副本,包括所有嵌套的文件夹和文件? 如果是,那么我强烈建议使用控制台命令 xcopy ,因为它是性能优化的,并且提供了复制具有所有相关安全权限等的文件结构的好处。
答案 1 :(得分:0)
试试这个:
string[] SourceFilez = System.IO.Directory.GetFiles("path", "*.*", System.IO.SearchOption.AllDirectories);
string[] targetFilez = new string[SourceFilez.Length];
SourceFilez.CopyTo( targetFilez, 0 );
for(int i = 0; i < targetFilez.Length; ++i)
{
targetFilez[i] = targetFilez[i].Replace("oldfolder", "newfolder");
string strThisDirectory = System.IO.Path.GetDirectoryName(targetFilez[i]);
if (!System.IO.Directory.Exists(strThisDirectory))
{
System.IO.Directory.CreateDirectory(strThisDirectory);
}
System.IO.File.Copy(SourceFilez[i], targetFilez[i]);
}
您可能希望在try-catch-finally块中包含for循环内容。
要考虑空目录,您可能希望在没有file.copy的情况下重复相同的代码块,将SourceFilez替换为:
string[] SourceDirectories = System.IO.Directory.GetDirectories("path", "*.*", System.IO.SearchOption.AllDirectories);
如果您有IIS7并且用户没有必要的权限来写入目标文件夹,则需要使用身份模拟并将应用程序池切换为经典模式。
修改强>
或者你的意思是一种方法将web应用程序用户计算机上的文件夹中的所有文件一次上传到服务器?在这种情况下,您需要JQuery uploadify:
http://www.uploadify.com/