【C#】.NET FTP 上传文件并保留原始日期时间
当前位置:点晴教程→知识管理交流
→『 技术文档交流 』
我们有一个 Windows 2008 R2 Web 服务器,带有基于 SSL 的 FTP。此应用程序使用 .NET 4.5,当我上传文件时,文件上的日期/时间将更改为服务器上的当前日期/时间。有没有办法让上传的文件保留原始(最后修改)日期? 这是我所拥有的: FtpWebRequest clsRequest = (FtpWebRequest)WebRequest.Create(FTPFilePath); clsRequest.EnableSsl = true; clsRequest.UsePassive = true; clsRequest.Credentials = new NetworkCredential(swwwFTPUser, swwwFTPPassword); clsRequest.Method = WebRequestMethods.Ftp.UploadFile; Byte[] bFile = File.ReadAllBytes(LocalFilePath); Stream clsStream = clsRequest.GetRequestStream(); clsStream.Write(bFile, 0, bFile.Length); clsStream.Close(); clsStream.Dispose(); clsRequest = null; 最佳答案 确实没有标准方法可以通过 FTP 协议(protocol)更新远程文件的时间戳。这可能就是 有两种非标准方法可以更新时间戳。非标准 MFMT yyyymmddhhmmss path 或非标准使用(其他标准) MDTM yyyymmddhhmmss path 但是 例如参见 How to send arbitrary FTP commands in C# . 所以你必须使用第三方 FTP 库。 例如WinSCP .NET assembly默认情况下保留上传文件的时间戳。 // Setup session options SessionOptions sessionOptions = new SessionOptions { Protocol = Protocol.Ftp, HostName = "example.com", UserName = "user", Password = "mypassword", }; using (Session session = new Session()) { // Connect session.Open(sessionOptions); // Upload session.PutFiles(@"c:\toupload\file.txt*", "/home/user/").Check(); } 参见a full example . 请注意,WinSCP .NET 程序集不是 native .NET 程序集。它是一个围绕控制台应用程序的薄 .NET 包装器。 (我是 WinSCP 的作者) 关于c# - .NET FTP 上传文件并保留原始日期时间,我们在Stack Overflow上找到一个类似的问题: 该文章在 2024/1/26 23:29:50 编辑过 |
关键字查询
相关文章
正在查询... |