标签: filesystemwatcher

FileSystemWatcher和网络断开?

如何让它在网络中运行?它工作然后它没有理由停止工作(可能因为网络不完美).

.net c# filesystemwatcher .net-2.0

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

FileSystemWatcher如何在另一个计算机目录上工作?

有些东西引起了我的注意,我没有找到任何资源.

FileSystemWatcher如何知道何时创建/删除/更改/重命名计算机上的文件"A"?

我认为这适用于轮询,(观察者轮询服务器以检查更新),但在使用Wireshark验证网络活动后,我看到没有使用轮询.SMB协议是否使用可观察/观察者模式?

在这种情况下,服务器如何知道客户端何时不再观察他?

当网络在观察期间跌落并且在之后立即返回时会产生什么后果?

在另一台计算机上使用FileSystemWatcher似乎太容易实现了......

.net winapi design-patterns filesystemwatcher

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

在C#中找出用户名(谁)修改过的文件

我正在使用FileSystemWatcher来监视文件夹.但是当目录中发生某些事件时,我不知道如何搜索谁对该文件产生了影响.我试着使用EventLog.它无法正常工作.还有另一种方法吗?

c# file-io filesystemwatcher event-log

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

从FileSystemWatcher错误中恢复的最佳做法是什么?

经过一个FileSystemWatcher.Error引发事件,我不知道下一步该怎么做的线索.例外可以是[相对]次要的,例如

目录中一次更改太多

这不会影响观察者的观看过程,但它也可能是一个大问题 - 例如被监视的目录被删除,在这种情况下观察者不再起作用.

我的问题是处理Error事件的最佳方法是什么?

.net c# filesystemwatcher exception-handling

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

在沙盒应用中使用FSEvents

我正在尝试在我的沙盒应用程序中使用FSEvents来监视某些目录.我实现了以下类:

@implementation SNTracker

- (id)initWithPaths:(NSArray *)paths {
    self=[super init];
    if (self) {
        trackedPaths=paths;
        CFTimeInterval latency=1.0;
        FSEventStreamContext context={0,(__bridge void *)self,NULL,NULL,NULL};
        FSEventStreamRef eeventStream=FSEventStreamCreate(kCFAllocatorDefault,&callback,&context,(__bridge CFArrayRef)trackedPaths,kFSEventStreamEventIdSinceNow,latency,kFSEventStreamCreateFlagUseCFTypes|kFSEventStreamCreateFlagWatchRoot|kFSEventStreamCreateFlagFileEvents);
        FSEventStreamScheduleWithRunLoop(eeventStream,[[NSRunLoop mainRunLoop] getCFRunLoop],kCFRunLoopDefaultMode);
        FSEventStreamStart(eeventStream);
    }
    return self;
}

static void callback(ConstFSEventStreamRef streamRef,void *clientCallBackInfo,size_t numEvents,void *eventPaths,const FSEventStreamEventFlags eventFlags[],const FSEventStreamEventId eventIds[]) {
    NSLog(@"asd");
}
Run Code Online (Sandbox Code Playgroud)

问题是"asd"永远不会被打印出来(即永远不会调用回调函数).当我在Xcode中的主要目标摘要中禁用"启用应用程序沙箱"时,将调用回调.难道我做错了什么?我给沙盒应用程序的唯一权利是对用户所选文件的读写访问权限.

cocoa monitoring filesystemwatcher monitor fsevents

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

在Windows服务中使用FileSystemWatcher

我有一个Windows服务,需要监视目录中的文件,然后将其移动到另一个目录.我正在使用FileSystemWatcher来实现它.

这是我的主要服务类.

public partial class SqlProcessService : ServiceBase
{
    public SqlProcessService()
    {
        InitializeComponent();
    }

    protected override void OnStart(string[] args)
    {
        FileProcesser fp = new FileProcesser(ConfigurationManager.AppSettings["FromPath"]);
        fp.Watch();
    }

    protected override void OnStop()
    {

    }
}
Run Code Online (Sandbox Code Playgroud)

这是我的FileProcessor类

public class FileProcesser
{
    FileSystemWatcher watcher;
    string directoryToWatch;
    public FileProcesser(string path)
    {
        this.watcher = new FileSystemWatcher();
        this.directoryToWatch = path;
    }
    public void Watch()
    { 
        watcher.Path = directoryToWatch;
        watcher.NotifyFilter = NotifyFilters.LastAccess |
                     NotifyFilters.LastWrite |
                     NotifyFilters.FileName |
                     NotifyFilters.DirectoryName;
        watcher.Filter = "*.*";
        watcher.Changed += new FileSystemEventHandler(OnChanged);
        watcher.Created += …
Run Code Online (Sandbox Code Playgroud)

c# windows-services filesystemwatcher

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

express-ws如何定期检查自定义事件并自动执行操作

我正在使用express-ws https://www.npmjs.com/package/express-ws(有助于为express和websocket客户端创建服务器的API).

app.ws('/', function(ws, req) {
  console.log("New connection")
  if (content.length > 0) {
    console.log(content)
    ws.send(content)
  }
  ws.on('message', function(msg, flags) {
    console.log("Received "+ msg);
  });
  ws.on('data', function(msg, flags) {
    var data = []; // List of Buffer objects
    res.on("data", function(chunk) {
      data.push(chunk); // Append Buffer object
      console.log(data)
    })
  })
});
Run Code Online (Sandbox Code Playgroud)

现在您可以看到上面的代码,无论何时创建连接,它都会检查内容的长度,并在超过0时向客户端发送conetent.

遵循路由器代码,在Web请求上更新文件.如果在连接创建后的某个时间(如果此文件被修改),此连接不知道它,因此不会调用此函数,因此不会调用send函数.我也试过fs.watch但是我无法让它工作.

router.post('/run_restart', function(req, res, next) {
  text = '{"to_do": "run_test", "devices":"all", "argv": { "test": "' + req.body.cmd + '", "cycles": "' + req.body.cycles + '", "awake_for": "' + req.body.wt …
Run Code Online (Sandbox Code Playgroud)

filesystemwatcher websocket node.js express

6
推荐指数
2
解决办法
1833
查看次数

FileSystemWatcher删除事件处理程序

出于某种原因,我无法从FileSystemWatcher中删除事件处理程序.

这就是我所拥有的

void Start()
{
     ivFileSystemWatcher = new FileSystemWatcher();
     ivFileSystemWatcher.Changed += 
        new FileSystemEventHandler(ivFileSystemWatcher_Changed);
}

void Stop()
{
     ivFileSystemWatcher.Changed -= 
        new FileSystemEventHandler(ivFileSystemWatcher_Changed);
     ivFileSystemWatcher.Dispose();
}
Run Code Online (Sandbox Code Playgroud)

当我打电话给开始时,我开始接收更改事件,但是当我呼叫停止时,我希望事件停止,但它们仍在被提升.

c# events filesystemwatcher handler

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

用于通知的 FileSystemWatcher

我正在创建一个使用 FileSystemWatcher 的 Windows 应用程序。FileSystemWatcher 观察一些目录的变化。每次将某个文件添加到此目录时,FileSystemWatcher 都必须将有关此文件的信息添加到 XML 文件中。一切正常,但是,例如,当我同时添加 100 个文件时(比如某些应用程序将这些文件添加到目录中),并不是每个文件的信息都出现在这个 xml 文件中。

我想使用队列。并使用它向此集合添加项目。并使用计时器。计时器将从该集合向 XML 添加信息。这是个好主意吗?

谁能建议我该怎么做?


所以我认为我必须创建一个 Windows 应用程序和一个 Windows 服务。WinApp 只会向 EventLog 添加信息,Windows Service 会读取信息 EventLog 并将其写入 XML。我认为这将是最好的方法。我在等待好的建议

c# notifications filesystemwatcher

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

如何刷新目录作为修复FileSystemWatcher的方法

正如所示这篇文章,FileSystemWatcher是不可靠的,因为Windows磁盘缓存的.海报显示,无论优化和InternalBufferSize如何,该类错过了大约0.15% - 0.35%的所有事件.即使是驱动程序也会受此影响,因此它本身并不是FileSystemWatcher的错误.

海报提出了解决这个问题的方法 - 冲洗整个卷.但是我不想这样做 - 缓存是有原因的,它需要管理员权限.是否可以只刷新被监视的目录并获得使FileSystemWatcher 100%准确的相同结果?我对FlushFileBuffers知之甚少,但海报的解决方案专门刷新整个卷,即使只是刷新目录显然是一个更好的解决方案.

有没有.NET方法来刷新目录或指定的文件(未打开)?我的意思是真正的刷新,它等待磁盘本身的确认.例如,FileStream.Flush(无效),刷新刚刚在.NET的缓冲区,而不是OS缓冲(不像FileStream.Flush(布尔)真正的参数在.NET 4和更好).我想刷新其他应用程序打开的文件.

如果没有,是否甚至可以使用FlushFileBuffers来刷新目录(也许它只支持文件和卷,但这会很奇怪)?此外,非管理员解决方案将非常理想,因为在管理模式下我可以使用Change Journal.

.net c# windows filesystemwatcher

5
推荐指数
0
解决办法
1397
查看次数