当前位置:编程学习 > C#/ASP.NET >>

怎样将一个文件夹从服务器上移动到本地机器

怎样将一个文件夹从服务器上移动到本地机器 --------------------编程问答-------------------- 不行,就在服务器做个服务程序,对目标文件夹打包,然后下载 --------------------编程问答-------------------- 磁盘映折呀 --------------------编程问答-------------------- 磁盘映折怎么做? --------------------编程问答-------------------- 有没有别的方法阿 --------------------编程问答-------------------- 有,你用FTP将服务器上的要想的文件夹载到本机不就行了。我上个月就有用到过。那时候还写了一个Windows服务程序用来监视服务器上指定根目录下有没有生成新的文件夹,如果有的话就把它FTP到另一台机子保证文件的同步。像你的情况,好像更简单些。下面是我的从服务器上传到另一台机用的部份代码(事先我已经建好了FTP目录),你的情况是下载到本机类似:
只是一个大致思路,具体的话你得自己试着调试.
string FtpServer = "127.0.0.1";//要上传到的目标机地址
string FtpDir ="/" ;//目标机目录.比方目标机FTP目录是C:\Inetpub\ftproot 此处用"/"则表示将文件上传到该目录下
string FtpUserId = "administrator";//FTP用户名 此用户必须有读取和写入的权限
string FtpPw = "1";//FTP密码
int FtpPort = 21;//FTP端口号
string UploadFile =@"E:\NetWindow\Files\XLSModel\ReportFile\" + NowDate;//本地要上传的文件地址,注意地址最后不要写\,否则ftp时会出错
FTP myftp = new FTP(FtpServer, FtpDir, FtpUserId, FtpPw, FtpPort);
myftp.Connect();
if (myftp.Connected)
{
try
{
myftp.Put(UploadFile, "*", true); // 上传到另一台机中
}
catch {}
finally
{
myftp.DisConnect();
}
} --------------------编程问答-------------------- 是移动文件夹及所有子文件夹,和文件。
解决立即结账。 --------------------编程问答-------------------- 迫不得已用递归

 public int  moveImage(string oldPath, string newPath, DateTime dt1, DateTime dt2)
        {
            int flag = 0;
            try
            {
                DirectoryInfo dir = new DirectoryInfo(oldPath);
                DirectoryInfo[] dirinfo = dir.GetDirectories();
                foreach (DirectoryInfo dirs in dirinfo)
                {
                    string dname = dirs.Name;//获取目录名
                    try
                    {
                        DateTime d = DateTime.Parse(dname);
                        if (d >= dt1 && d <= dt2)
                        {
                            flag = 1;
                            Directory.CreateDirectory(newPath+"\\"+dname);
                           //遍历文件夹下的所有子文件夹及文件
                            ListFiles(dirs, oldPath + "\\" + dname, newPath+"\\"+dname);

                        }
                    }
                    catch (Exception exp)
                    { //MessageBox.Show(exp.Message);
                    }
                }
                return flag;
            }
            catch (Exception exp)
            {
                MessageBox.Show(exp.Message);
                return 2;
            }
        }


/// <summary>
        /// 递归备份文件
        /// </summary>
        /// <param name="dirinfo">符合条件的目录或目录组</param>
        /// <param name="olddirPath">要备份的目录</param>
        /// <param name="newdirPath">新目录</param>
        private void ListFiles(DirectoryInfo dirinfo,string olddirPath,string newdirPath)
        {
            if (!dirinfo.Exists) return;
            DirectoryInfo[] dirs = dirinfo.GetDirectories();//返回所有子目录
            FileInfo[] files = dirinfo.GetFiles();//返回所有文件

            //存在文件
            if (files.Length >0)
            {
                foreach (FileInfo f in files)
                {
                    string filename = f.Name;  //获取文件名
                    f.MoveTo(newdirPath+"\\"+filename); 
                }

            }
            //存在目录
            if (dirs.Length >0)
            {
                foreach (DirectoryInfo d in dirs)
                {
                    string dirname = d.Name;
                    Directory.CreateDirectory(newdirPath+"\\"+dirname);//创建目录
                    ListFiles(d, olddirPath, newdirPath + "\\" + dirname);
                }
            }
        }
--------------------编程问答-------------------- 楼上的办法可行
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,