有,你用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();
}
}

解决方案 »

  1.   

    迫不得已用递归 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);
                    }
                }
            }