将文件夹从本地计算机复制到服务器中的文件夹

时间:2011-09-21 10:27:02

标签: c# asp.net

从本地机器复制文件夹,从本地机器复制完整的文件和文件夹,即 用户选择的文件夹/目录路径必须完全[全部 选择路径中的文件]将被粘贴/复制到 托管Web应用程序的Web服务器中的文件夹。 ine到服务器中的文件夹

2 个答案:

答案 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/