我在服务器上有一个文件,我想修改它的时间戳。
以下似乎是为了这个目的:
ftpClient.mlistFile("file path").getTimestamp().setTime(date);
但它根本不会改变日期。
以下是完整代码:
String remotePath = "/public_html/AX/dan.css";
Calendar ftpFile = ftpClient.mlistFile(remotePath).getTimestamp();
Date date = ftpFile.getTime();
System.out.ptintln(date);
Calendar cal = Calendar.getInstance();
ftpClient.mlistFile(remotePath).getTimestamp().setTime(cal.getTime());
System.out.ptintln(ftpClient.mlistFile(remotePath).getTimestamp().getTime());
因此上面的代码首先打印远程文件的旧时间戳,将其修改为当前时间并再次打印。但是如果你运行它,你会发现第二个印刷品仍然与旧印刷品相同。因此,行动修改无效。
为什么?有什么想法吗?
答案 0 :(得分:1)
您应该使用setTimestamp()
代替setTime()
。根据{{3}}。做这样的事情
Calendar cal = Calendar.getInstance();
FTPFile file = ftpClient.mlistFile(remotePath);
file.setTimestamp(cal);
System.out.ptintln(file.getTimestamp());
答案 1 :(得分:0)
在setModificationTime()
上使用FTPClient
。
根据此link,它将日期作为字符串格式:
YYYYMMDDHHMMSS
这是一个片段:
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
ftp.setModificationTime(fileName, sdf.format(new Date(localFile.lastModified())));
在setTimestamp()
上运行FTPFile
对我来说也不起作用。事实上,服务器没有收到任何与之相关的命令,因此它要么需要另一步,要么就是没有用于此目的。