文件创建时间

4 php sorting time file

如何通过文件创建对目录进行排序,最先在PHP 5.2中进行排序?

我在Windows 2000上.

hob*_*ave 9

在Windows上,CTime是创建时间,使用以下内容:

<?php
$files = array();

foreach (new DirectoryIterator('/path') as $fileInfo) {    
    $files[$fileInfo->getFileName()] = $fileInfo->getCTime();
}

arsort($files);
Run Code Online (Sandbox Code Playgroud)

在此$文件之后将包含一个文件名数组作为键,ctime作为值.由于可能存在相同的ctimes,我选择了这种向后表示,这会导致$ files中的条目被覆盖.

编辑:

更新了使用CTime作为OP澄清他正在使用Windows的答案.


Ign*_*ams 5

大多数操作系统上不存在文件创建时间.

  • 没有窗户. (7认同)

Gor*_*don 5

您不能在Unix系统上创建日期,但是对于更改日期,但请参阅下面的Windows编辑.

代码如下:

function sortByChangeTime($file1, $file2)
{
    return (filectime($file1) < filectime($file2)); 
}
$files = glob('*');                // get all files in folder
usort($files, 'sortByChangeTime'); // sort by callback
var_dump($files);                  // dump sorted file list
Run Code Online (Sandbox Code Playgroud)

从关于filectime的PHP手册的注释:

注意:还要注意,在某些Unix文本中,文件的ctime被称为文件的创建时间.这是错的.在大多数Unix文件系统中,Unix文件没有创建时间.

有关ctime,atime和mtime的差异,请参阅Antti答案中的链接,并确定最适合在Unix上使用的Usecase.

编辑:filectime页面上的注释之一说明Windows上没有更改时间,filectime确实返回创建时间.我不是Windows文件系统的专业人士,但使用上述内容可能是你最好的选择.或者,您可以查看COM API以获取ScriptingHost的句柄,并查看是否可以从那里获取创建时间.