¿Hay alguna manera de obtener el tiempo de creación de un archivo en Windows con mayor precisión? Quiero obtener el tiempo de creación de un video mp4 en milisegundos. es posible?
windows
file-management
Phil
fuente
fuente
ctime
la copia sea el momento en que se copió.stat
para obtener las 3 marcas de tiempo. Por supuesto, eso es porque normalmente uso GNU / Linux.Respuestas:
Resolución de marca de tiempo
La marca de tiempo de creación de un archivo en Windows depende del sistema de archivos:
FAT / VFAT tiene una resolución máxima de 2 s
NTFS tiene una resolución máxima de 100 ns
solución wmic
Puede usar
wmic
para recuperar la fecha de creación del archivo al microsegundo más cercano.Ejemplo:
La fecha de creación
20150329221650.080654+060
es una marca de tiempo, con el siguiente formato:dónde:
yyyy
Año de cuatro dígitos (0000 a 9999).mm
Mes de dos dígitos (01 a 12).dd
Día de dos dígitos del mes (01 a 31).HH
Hora de dos dígitos del día usando el reloj de 24 horas (00 a 23).MM
Minuto de dos dígitos en la hora (00 a 59).SS
Número de segundos de dos dígitos en el minuto (00 a 59).xxxxxx
Número de seis dígitos de microsegundos en el segundo (000000 a 999999)s
Signo más (+
) o signo menos (-
) para indicar un desplazamiento positivo o negativo del Tiempo Universal Coordinado (UTC).UUU
Desplazamiento de tres dígitos que indica la cantidad de minutos que la zona horaria de origen se desvía de UTC.solución estadística
También puede usar
stat
(desde una instalación cygwin o mingw ).Ejemplo:
salida dir para comparación
Otras lecturas
fuente
xxxxxx
es un número de seis dígitos de microsegundos en el segundo (000000 a 999999) . Micro- , es decir10^-6
. Por supuesto, el primer triplete representa mili- (10^-3
): truncado, no redondeado. El segundo triplete extraído no representa nada en sí mismo ... Sin embargo, algunoswmi
valores de fecha y hora muestran000
siempre el segundo triplete , por ejemplowmic OS get LocalDateTime
Aquí se demuestra una manera inteligente: /programming/5180592/showing-ntfs-timestamp-with-100-nsec-granularity
Está utilizando VBScript para consultar la base de datos CIM de WMI y devolver la
FILETIME
estructura asociada a un archivo.También hay herramientas de código abierto que pueden inspeccionar los metadatos de un archivo multimedia, como EXIFtool, que está orientado a administrar los metadatos de los medios creados por las cámaras digitales.
fuente
Encontré una forma de obtener esto en Matlab:
Puede usar la función GetFileTime escrita por Jan Simon. Si no desea compilar sus propios archivos mex, también puede descargar los archivos compilados aquí .
No es tan exacto como usar wmic (solo ms) pero para mi propósito es adecuado.
fuente
Que depende del sistema de archivos : FAT has 2 segunda resolución, NTFS teóricamente tiene 100 ns resolución, pero la actual resolución es de 10 ms . Dicho esto, las interrupciones tienen mayor prioridad que las E / S de disco, y no estoy seguro del efecto que tiene el almacenamiento en caché de escritura en la marca de tiempo. Los temporizadores multimedia están optimizados para la precisión, por lo que sería la forma preferida de implementar el tiempo.
Puede usar una herramienta existente como XYplorer para ver marcas de tiempo de alta resolución, o puede preferir escribir su propia aplicación. Utilice el método File.GetCreationTime ; devuelve una estructura de fecha y hora con la propiedad de milisegundos .
fuente
wmic
muestra una resolución al microsegundo más cercano .