小编Phi*_*uez的帖子

在Java中查看文件和目录更改

我在这里写的主要是关于从哪里开始的建议.我已经实现了一个类,它将使用Java的WatchService递归地查看目录.它可以很好地检测更改,但我注意到一个致命的缺陷:我无法删除正在监视包含正在监视的目录的目录.这似乎是WatchService的限制.

我也看了一下Apache的VFS FileListener,但是在我花费大约6个小时的时间构建一些包装器之前,我想我可能只会问那些比我自己更有知识的人.

我需要看到的目录是完全可操作的,除了被监视的根目录不会被删除或重命名.是否已经有一个好的类我可以用来监视不锁定文件或文件夹的文件和目录?我试图避免使用轮询/哈希比较方法,但我感觉越来越多,好像我需要使用这种方法并烧掉大量的CPU资源.我从哪里开始呢?理想情况下,我需要:

- 检测文件和目录的创建 - 检测文件和目录的删除 - 检测文件和目录的重命名 - 检测文件的修改 - 检测目录之间文件的移动

我也看到一些人认为观察者不可靠,并且他们使用两者的组合(偶尔在观察者失败的某个地方进行轮询),但男人听起来像是一种真正的痛苦,如果不是,我宁愿避免无论如何最好的方式.我有一种感觉,我需要轮询和散列,特别是因为我想检测文件的移动和重命名,但请告诉我们是否存在更好的选项.

在此先感谢,对不起代码特定的问题感到抱歉!

java filesystems nio filesystemwatcher file

2
推荐指数
1
解决办法
2668
查看次数

溢出 int 时 cin 的意外行为

所有,我这里有一些代码我无法解释其行为。下面发布了。我查看了为什么整数溢出会导致 C++ iostreams 错误?,但它并没有真正回答我的问题。

#include <iostream>
#include<stdio.h>
using namespace std;
int main()
{
    int x;
    scanf("%d", &x);
    cout << "Value of x = " << x << endl;
    cin >> x;
    cout << "Failure Detected = " << cin.fail() << endl;
    cout << "Value of x = " << x << endl;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

因此,我希望这段代码要做的是读入一个整数,打印出该整数的值,读入另一个整数(进入同一个变量),然后打印出该整数。如果我输入 7 和 2,那么它会按预期工作。但是,如果我为第一个和第二个输入都输入 2^31(int 溢出 1),则第一个输出将显示“Value of x = -2147483648”,第二个输出将显示“Value of x = 2147483647”。cin.fail() 也会返回 true。cin 对输入做了什么?我认为如果 cin.fail() 为 true,则 x 的值应该不受影响。如果不受影响,我预计 …

c++ overflow cin

1
推荐指数
1
解决办法
2165
查看次数

标签 统计

c++ ×1

cin ×1

file ×1

filesystems ×1

filesystemwatcher ×1

java ×1

nio ×1

overflow ×1