是否可以进行 'find . -ctime n'在JDK7中?

发布于 2024-11-08 05:21:04 字数 141 浏览 4 评论 0原文

是否可以做一个等效的“find”。 JDK7 中的 -ctime n'(Unix 命令)?即根据上次更改时间查找所有文件? 我查看了新的 FileVisitor/BasicFileAttributes/SimpleFileVisitor 类,但我看不出它是如何完成的。

Is it possible to do a equivalent 'find . -ctime n' (Unix command) in JDK7? i.e. find all files based on last changed time?
I had a look at the new FileVisitor/BasicFileAttributes/SimpleFileVisitor classes but I cannot see how it could be done.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

ゃ人海孤独症 2024-11-15 05:21:04

以下对我有用(使用 Files.walkFileTree 和 FileVisitor):

FileTime ctime = (FileTime) Files.getAttribute(path, "unix:ctime");

The following worked for me (using Files.walkFileTree and a FileVisitor) :

FileTime ctime = (FileTime) Files.getAttribute(path, "unix:ctime");

别闹i 2024-11-15 05:21:04

在 JDK 7 论坛中,有 就该主题展开讨论

它基本上说:

来自creationTime的描述“如果
文件系统实现确实
不支持时间戳指示
文件创建时间
那么这个方法返回一个
实现特定的默认值,
通常是最后修改时间或
代表纪元的 FileTime
(1970-01-01T00:00:00Z)”。所以
您观察到的行为是预期的。这
最后一次状态改变的时间是
如果你确实需要的话可以尝试一下
文件.getAttribute(路径,
“unix:ctime”)。

所以,你自己的答案似乎是正确的。

In the JDK 7 Forums there is discussion opened on the subject

It basically says:

From creationTime's description "If
the file system implementation does
not support a time stamp to indicate
the time when the file was created
then this method returns an
implementation specific default value,
typically the last-modified-time or a
FileTime representing the epoch
(1970-01-01T00:00:00Z)". So the
behavior you observe is expected. The
time of last status change is
available if you really need it, try
Files.getAttribute(path,
"unix:ctime").

So, your own answer seems to be the right one.

请爱~陌生人 2024-11-15 05:21:04

您可以通过在文件属性对象上调用getCreationTime()来获取文件的创建时间。您可以使用 Files.walkFileTreeFileVisitor 进行目录树遍历。将它们放在一起,您就可以实现 find 。 -ctime n。

You can get the creation time of a file by calling getCreationTime() on its file attributes object. You can do a directory tree walk using Files.walkFileTree and a FileVisitor. Put these together and you can implement find . -ctime n.

掩耳倾听 2024-11-15 05:21:04

creationTime 的 javadoc 是这样说的:

如果文件系统实现不支持时间戳来指示文件创建的时间,则此方法返回一个特定于实现的默认值,通常是上次修改时间或表示纪元的 FileTime ( 1970-01-01T00:00:00Z)。

由于创建在 Unix/Linux 上并不常见,因此该方法返回最后修改时间。

Here's what creationTime's javadoc says:

If the file system implementation does not support a time stamp to indicate the time when the file was created then this method returns an implementation specific default value, typically the last-modified-time or a FileTime representing the epoch (1970-01-01T00:00:00Z).

As the creation is not typical on Unix/Linux then the method is returning the last modified time.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文