【问题标题】:Vala get file modification dateVala 获取文件修改日期
【发布时间】:2020-03-14 16:09:30
【问题描述】:

我对 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?'

有人能指出我正确的方向吗? 谢谢。

【问题讨论】:

  • 注意GLib.FileInfo?中的?,这意味着该值可能是null。如果是null,则get_modification_date_time 不存在,因为它很好null,您需要使用if (info != null) 之类的东西证明该值不为空

标签: vala


【解决方案1】:

错误是说该方法不存在。查看 Valadoc.org 的 get_modification_date_time 它表明这是在 GLib 2.62 版中引入的。 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;
}

【讨论】:

    猜你喜欢
    • 2015-02-19
    • 2016-12-09
    • 2011-04-09
    • 2018-01-10
    • 2019-02-26
    • 2012-12-06
    • 1970-01-01
    • 2010-09-17
    相关资源
    最近更新 更多