Vala 获取文件修改日期
Vala get file modification date
我是 Vala 和 linux 编程的新手。
我正在尝试为给定文件夹枚举类似于 'stat' shell 实用程序的数据。
到目前为止,我得到的是:
int main (string[] args) {
try {
File directory = File.new_for_path (".");
if (args.length > 1) {
directory = File.new_for_commandline_arg (args[1]);
}
FileEnumerator enumerator = directory.enumerate_children (FileAttribute.TIME_MODIFIED, 0);
FileInfo file_info;
while ((file_info = enumerator.next_file ()) != null) {
DateTime t = file_info.get_modification_date_time();
}
} catch (Error e) {
stderr.printf ("Error: %s\n", e.message);
return 1;
}
return 0;
}
控制台输出:
vala --pkg gio-2.0 --pkg glib-2.0 main3.vala
main3.vala:16.24-16.59: error: The name `get_modification_date_time' does not exist in the context of `GLib.FileInfo?'
有人能指出我正确的方向吗?
谢谢
错误是说该方法不存在。查看 Valadoc.org 的 get_modification_date_time
it shows this was introduced in GLib version 2.62. That version was released 2019 年 9 月 5 日。您的发行版可能尚未包含该版本。
您可以尝试更新您的 GLib 版本或使用现已弃用的 get_modification_time
:
int main(string[] args) {
if (args[1] == null) {
stderr.printf("No filename given\n");
return 1;
}
var file = GLib.File.new_for_path (args[1]);
try {
GLib.FileInfo info = file.query_info("*", FileQueryInfoFlags.NONE);
print (info.get_modification_time().to_iso8601() + "\n");
print ("\n\nFull info:\n");
foreach (var item in info.list_attributes (null)) {
print( @"$item - $(info.get_attribute_as_string (item))\n" );
}
} catch (Error error) {
stderr.printf (@"$(error.message)\n");
return 1;
}
return 0;
}
我是 Vala 和 linux 编程的新手。
我正在尝试为给定文件夹枚举类似于 'stat' shell 实用程序的数据。 到目前为止,我得到的是:
int main (string[] args) {
try {
File directory = File.new_for_path (".");
if (args.length > 1) {
directory = File.new_for_commandline_arg (args[1]);
}
FileEnumerator enumerator = directory.enumerate_children (FileAttribute.TIME_MODIFIED, 0);
FileInfo file_info;
while ((file_info = enumerator.next_file ()) != null) {
DateTime t = file_info.get_modification_date_time();
}
} catch (Error e) {
stderr.printf ("Error: %s\n", e.message);
return 1;
}
return 0;
}
控制台输出:
vala --pkg gio-2.0 --pkg glib-2.0 main3.vala
main3.vala:16.24-16.59: error: The name `get_modification_date_time' does not exist in the context of `GLib.FileInfo?'
有人能指出我正确的方向吗? 谢谢
错误是说该方法不存在。查看 Valadoc.org 的 get_modification_date_time
it shows this was introduced in GLib version 2.62. That version was released 2019 年 9 月 5 日。您的发行版可能尚未包含该版本。
您可以尝试更新您的 GLib 版本或使用现已弃用的 get_modification_time
:
int main(string[] args) {
if (args[1] == null) {
stderr.printf("No filename given\n");
return 1;
}
var file = GLib.File.new_for_path (args[1]);
try {
GLib.FileInfo info = file.query_info("*", FileQueryInfoFlags.NONE);
print (info.get_modification_time().to_iso8601() + "\n");
print ("\n\nFull info:\n");
foreach (var item in info.list_attributes (null)) {
print( @"$item - $(info.get_attribute_as_string (item))\n" );
}
} catch (Error error) {
stderr.printf (@"$(error.message)\n");
return 1;
}
return 0;
}