【问题标题】:Looking for algorithm in file modification [closed]在文件修改中寻找算法[关闭]
【发布时间】:2012-10-13 04:31:55
【问题描述】:

请告知算法假设如果文件 def.txt 是在 C 中创建的:那么它本身不应该在 1 小时内修改,如果在 1 小时内没有修改,我必须在控制台中打印“文件不是修改”,如果它在 1 小时内被修改,那么我必须打印语句“该文件已修改”,请告知如何在 java 中编写这样的算法或如何在 java 中实现这一点

【问题讨论】:

  • 您需要它作为系统服务/守护进程吗?考虑不为此使用 Java。使用不同的语言会更容易。
  • 请提供您执行了哪些任务的信息
  • @LewsTherin 我被困住了,请指教..!!
  • @Andreas_D 我想在java中创建一个函数,以便我可以在我的应用程序的任何地方使用它,请告知

标签: java file io


【解决方案1】:

如果您需要监控多个文件/目录,您可以实现 Watch Service,请参阅:here 中的“创建 Watch Service 并注册事件”。捕获 ENTRY_CREATE 和 ENTRY_MODIFY 事件将使您能够采取适当的行动。在创建时记录创建时间,在修改时检测修改时间是小于还是大于一个小时。

【讨论】:

  • 我正在读取属性文件 ..PropertyFile propertyfile = new PropertyFile("TamperAlert.txt", "C:/abcstore/osErrlogs");..现在按照这个创建 TamperAlert.txt在我的 C: 中,我想跟踪它不应该在 1 小时内修改
【解决方案2】:

每次尝试修改文件时,首先检查file.lastModified()System.currentTimeMillis() 之间的差异是否小于一小时(以毫秒为单位)。

您必须在需要时调用此验证服务(= 提供验证方法的对象)。

【讨论】:

  • @Andreas..我正在读取属性文件 ..PropertyFile propertyfile = new PropertyFile("TamperAlert.txt", "C:/abcstore/osErrlogs");..现在按照这个 TamperAlert .txt 是在我的 C: 中创建的,我想跟踪它不应该在 1 小时内修改
  • 被java应用修改还是一般修改?
  • 由 java 应用程序修改,换句话说,在 TamperAlert.txt 中有一个属性名称 dfgh,其值为 o,但如果应用程序在某些情况下修改它,则 dfgh 的值变为 1,所以我必须采取注意不要在 1 小时内自行修改
【解决方案3】:
public static void main(String[] args) {
File f = new File("/temp/t.txt");
long lastModified = f.lastModified();
long currentTime = System.currentTimeMillis();
long difference = currentTime - lastModified;
// time is in milliseconds, one hour is 60 * 60 * 1000 milliseconds
long oneHour = 1000 * 60 *60;
if (difference > oneHour)
    System.out.println("file is not modified");
else
    System.out.println("that file is modified");
}

【讨论】:

  • Kimaschewski ..非常感谢,真的很努力,非常感谢你能告诉我一件事,我正在阅读属性文件,它是否也适用于属性文件..!
  • PropertyFile propertyfile = new PropertyFile("TamperAlert.txt", "C:/abcstore/osErrlogs")
  • 我不知道PropertyFile 类,它不是Java 标准类。但是如果它以某种方式连接到一个标准的 Java File 类,那应该没有问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多