使用C#中的Fluent FTP从FTP服务器获取最后添加/复制的文件

问题描述 投票:0回答:1

我正在使用下面的代码。 (FluentFTP)但Item.Modified将仅为文件创建日期。因此它的渲染基于复制的文件创建日期。 (不是在复制时)如何根据Fluent FTP中的复制/添加日期获取文件。

private static void GetFiles()
    {
        using (FtpClient conn = new FtpClient())
        {
            string ftpPath = "ftp://myftp/";

            Dictionary<string, string> dirList = new Dictionary<string, string>();

            DateTime lastRunDate = DateTime.Now.AddMinutes(-2);

            string downloadFileName = @"C:\temp\FTPTest\";

            string newID = Guid.NewGuid().ToString();

            downloadFileName += newID + "\\";

            conn.Host = ftpPath;
            //conn.Credentials = new NetworkCredential("ftptest", "ftptest");
            conn.Connect();

            //Get all directories

            foreach (FtpListItem item in conn.GetListing(conn.GetWorkingDirectory(),
                FtpListOption.Modify | FtpListOption.Recursive))
            {
                // if this is a file
                if (item.Type == FtpFileSystemObjectType.File)
                {
                    if (item.Modified >= lastRunDate)
                    {
                        dirList.Add(item.FullName, item.Modified.ToString());
                        conn.DownloadFile(downloadFileName + item.FullName, item.FullName);
                    }
                }
            }
        }
    }
c# asp.net ftp monitoring fluentftp
1个回答
0
投票

说明:

我正在从具有相同文件夹结构的FTP(读取权限请求)下载文件。因此,每次作业运行时,我都可以检查物理路径是否存在相同文件(完整路径)如果不存在则可以将其视为新文件。我可以做同样的动作并下载。

它只是一个替代解决方案。

代码更改:

private static void GetFiles()
    {
        using (FtpClient conn = new FtpClient())
        {
            string ftpPath = "ftp://myftp/";

            string downloadFileName = @"C:\temp\FTPTest\";

            downloadFileName +=  "\\";

            conn.Host = ftpPath;
            //conn.Credentials = new NetworkCredential("ftptest", "ftptest");
            conn.Connect();

            //Get all directories

            foreach (FtpListItem item in conn.GetListing(conn.GetWorkingDirectory(),
                FtpListOption.Modify | FtpListOption.Recursive))
            {
                // if this is a file
                if (item.Type == FtpFileSystemObjectType.File)
                {
                    string localFilePath = downloadFileName + item.FullName;

                    //Only newly created files will be downloaded.
                    if (!File.Exists(localFilePath))
                    {
                        conn.DownloadFile(localFilePath, item.FullName);
                        //Do any action here.
                        Console.WriteLine(item.FullName);
                    }
                }
            }
        }
    }
© www.soinside.com 2019 - 2024. All rights reserved.