File io 使用FTP获取服务器本地时间

File io 使用FTP获取服务器本地时间,file-io,ftp,compact-framework,File Io,Ftp,Compact Framework,是否可以使用FTP获取本地服务器时间?我在.net的智能设备项目上,使用的是超越FTP库,不幸的是,这些都是我的局限性。System.File.IO不可在Compact framework中使用 我首先在一台本地机器上创建了一个文件,然后将它转移到服务器并复制回来 FtpFolder destTimestampFolder=新的FtpFolder(ftpConn,ConfigReader.AppSettings[“inDir”]+“\timestamp”) 显示的时间戳以本地机器时间显示我。我尝

是否可以使用FTP获取本地服务器时间?我在.net的智能设备项目上,使用的是超越FTP库,不幸的是,这些都是我的局限性。System.File.IO不可在Compact framework中使用

我首先在一台本地机器上创建了一个文件,然后将它转移到服务器并复制回来

FtpFolder destTimestampFolder=新的FtpFolder(ftpConn,ConfigReader.AppSettings[“inDir”]+“\timestamp”)

显示的时间戳以本地机器时间显示我。我尝试显示desttfile.LastAccessDateTime,结果显示为零


任何变通办法都会有帮助。我基本上希望获得最后访问的文件戳并计算差异。

不,FTP协议没有检索服务器时钟的方法

有两种可能性:

  • 使用应返回文件UTC时间戳的
    MLST
    MDTM
    命令
  • 上载新文件并检查其修改时间

  • 谢谢,选项2不起作用(见我原来的帖子)。如何从c#.net代码中访问这些命令?对不起,如果我被误解了。您需要服务器本地时间做什么?我需要它生成utc时间戳供内部使用。DateTime.Now.ToUniversalTime()并不总是正确的,因为这些瘦客户机没有连接到internet,所以获取UTC时间戳的唯一可靠方法是获取服务器时间。所有服务器都设置为UTC.OK,因此请尝试上载和
    MLST
    /
    MDTM
    /
    MLSD
    命令。我不知道数据库,也没有找到任何文档。由于这是一个商业产品,你应该询问他们的支持。有多少以及什么操作系统和ftp服务器。您可以创建一个在服务器上运行的程序来显示服务器的本地时间。一些ftp服务器提供“报价”功能。我知道有一个ce ftp服务器提供了一个“quote run”命令来在ftp服务器上运行程序。您还可以使用不同的协议获取服务器的本地时间,例如通过web服务器或web服务。所有服务器的可能性取决于服务器和您正在访问的ftp服务。您必须在某个网络上。您是否考虑过建立一个输出服务器时间的简单服务?您可以从compact框架访问HTTP、TCP/IP和UDP。见鬼,即使windows本身也有一个简单的日期/时间服务,您可以打开该服务并在端口13上运行。
     AbstractFile localttfile = new DiskFile(ConfigReader.AppSettings["mainPath"] + ConfigReader.AppSettings["clientConfigDir"] + "\\timestamp.txt");
                        if (!localttfile.Exists)
                        {
                            localttfile.Create();                    }
    
                        localttfile.CopyTo(destTimestampFolder, true);
                        //copy back and grab the last accessed timestamp
                        AbstractFile destttfile = rootFolder.GetFile(ConfigReader.AppSettings["inDir"] + "\\timestamp\\timestamp.txt");
                        destttfile.CopyTo(destFolder, true);
                        MessageBox.Show(localttfile.LastAccessDateTime.ToString());