【问题标题】:How to detect whether a file is modified in iOS?如何在iOS中检测文件是否被修改?
【发布时间】:2012-03-18 16:55:54
【问题描述】:

iOS中如何检测文件是否被修改?

我不是指实时监控,因为当应用程序消失时,它就不会再检测了。

我检查了文件的属性,没有找到满意的。(我错过了什么吗?)

也许有一些生成校验和的解决方案,但它们需要很多时间。 (有没有便宜的校验和生成算法?

【问题讨论】:

    标签: ios iphone file checksum


    【解决方案1】:

    您可以使用stat (reference) 来获取文件的修改时间。然后,您可以将其与您的存储值进行比较:

    struct stat sb;
    if (stat("/path/to/file", &sb) == 0)
    {
        ... compare sb.st_mtimespec with stored value
    
    }
    else
    {
        ... report error
    }
    

    This question 非常接近你的。

    【讨论】:

    • 和NSFileModificationDate一样吗?
    【解决方案2】:

    您检查了哪些属性?使用fstat(),您应该能够将文件的st_mtime 属性与之前存储的值进行比较。

    【讨论】:

    • 和NSFileModificationDate一样吗?
    • 可能是一样的,但显然stat 工作得更快。请参阅以下 SO 答案,该答案演示了使用 stat 获取修改日期:stackoverflow.com/a/1999553/19410
    • 不清楚,但该示例代码看起来像是扩展了 NSDate 的 Objective C 类别(如果您对此细节感兴趣)。
    • 啊,现在我知道为什么这让我感到困扰了。我认为,如果您尝试将应用程序发送给 Apple 以供批准,其中包含扩展 Apple API 中的类的类别(如NSDate),那么该应用程序将被拒绝。所以我会使用该代码来学习stat,然后将其修改为“本地”非 Apple 辅助类中的方法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-27
    • 1970-01-01
    • 1970-01-01
    • 2015-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多