相关疑难解决方法(0)

如何确定目录/文件夹是否已更改

我有一个具有以下结构的文件夹

Parent/
    Child1/
        GrandChild1/
             File1.txt
Run Code Online (Sandbox Code Playgroud)

我需要查询父文件夹并找出 Child1 是否已更改。

已更改 = 添加/更新/删除了新文件。

Child1 文件夹 DateModified 未更新。发生更改时,仅更新 GrandChild1 修改日期。我试图避免进入文件级别来确定 rootparent 是否已更改。因为会有很多文件夹和子文件夹。我只需要知道 Child1 是否已更改。

我不想使用 FileSystemWatcher,因为我将此作为计划作业运行,而不是实时观看。

c# directory subdirectory

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

FileSystemWatcher陷阱

我正在开发一个需要使用FileSystemWatcher该类的C#程序,以便在创建新文件时通知它.作为初始化的一部分,程序扫描目录,以便它可以处理其中已存在的任何文件.这一切都很好.

但是,在与另一位开发人员的讨论中,我们开始质疑这是否始终有效.是否存在FileSystemWatcher错过创建文件的条件?如果是这样,这些条件是什么?

为了处理这种情况,我们只是在初始化过程中运行代码,定期扫描目录,但是FileSystemWatcher错过文件的可能性有多大?

c# filesystemwatcher

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

尽管对其采取了措施,但FileSystemWatcher事件仍然提升了两次

我在这里和其他网站浏览了不少线程,以解决这个问题.

这是我的FileMonitor类:

class FileMonitor
{
    public FileMonitor(String path)
    {
        try
        {
            var watcher = new FileSystemWatcher()
            {
                Path = path,
                IncludeSubdirectories = true,
                InternalBufferSize = 65536,
                EnableRaisingEvents = true
            };

            watcher.Changed += new FileSystemEventHandler(OnFileChanged);
            watcher.Created += new FileSystemEventHandler(OnFileCreated);
            watcher.Deleted += new FileSystemEventHandler(OnFileDeleted);
            watcher.Renamed += new RenamedEventHandler(OnFileRenamed);
            watcher.Error += new ErrorEventHandler(OnWatcherError);
        }
        catch (Exception)
        {

            throw;
        }
    }

    private void OnWatcherError(object sender, ErrorEventArgs e)
    {

    }

    private void OnFileChanged(object sender, FileSystemEventArgs e)
    {
        try
        {
            ((FileSystemWatcher)sender).EnableRaisingEvents = false;

            LogFileSystemChanges(e);
        }

        finally …
Run Code Online (Sandbox Code Playgroud)

.net c# filesystemwatcher

4
推荐指数
2
解决办法
3141
查看次数

C#FileSystemWatcher严重问题?

我已经为一个文件夹实现了FileSystemWatcher,该文件夹驻留在NetworkStorage设备上(没有操作系统).

场景是,我们有两台机器说机器A和机器B.我的应用程序在我的表单Button1和Button2上有两个按钮.我编写了重命名Test.txt文件的代码.

Button1:将文件Test.txt重命名为Test007.txt和Button2:将文件Test007.txt重命名为Test.txt

假设我同时运行了A和B的tis exe文件.然后我可以通过从机器A按下Button1来重命名文件,现在如果我试图从另一台机器B重命名该文件,那么它会给出错误

"System.ComponentModel.Win32Exception:指定的服务器无法执行请求的操作"

任何人都有任何想法...请帮助我们找到解决方案.我们拥有该文件夹的适当权限.

注意:代码也适用于LAN文件夹,因此代码是完美的.它不适用于NetworkStoreDevice.

c# filesystems file

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

C#:如何检查打开的文件是否已更新

例如,您知道该功能,C:\test.txt如果您在另一个编辑器中也有相同的文件,并且在那里编辑它,则在您返回时,应用程序将提示文件已更改,无论您是否要更新它.如何检查文件是否已更新?

UPDATE

问一个姐妹问题" 使用FileSystemWatcher来监视文件的变化 "

c# io filesystemwatcher

3
推荐指数
2
解决办法
4164
查看次数

在监视文件更改的上下文中,“轮询”意味着什么?

我目前正在尝试让 FileSystemWatcher 工作,如这个问题中所述。在我的研究过程中,我在这个网站上发现了很多描述此类不可靠性的答案和评论。相反,在某些地方提到“轮询”作为观察变化的方法,例如在这个(非常旧的)答案中。我的问题是这到底意味着什么。

c# filesystemwatcher .net-6.0

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

FileSystemWatcher在一段时间后不会触发

我有以下代码用于监视文本文件的目录,该目录每天两次获取新文件,代码工作正常,但之后它停止触发OnCreated事件...

[PermissionSet(SecurityAction.Demand, Name="FullTrust")]
public static void Run()
{
    FileSystemWatcher watcher = new FileSystemWatcher();
    watcher.Path = @"c:\users\documents\";

    watcher.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite
       | NotifyFilters.FileName | NotifyFilters.DirectoryName;

    watcher.Filter = "*.txt";

    // Add event handlers.
    watcher.Created += new FileSystemEventHandler(OnCreated);

    // Begin watching.
    watcher.EnableRaisingEvents = true;

    // Wait for the user to quit the program.
    Console.WriteLine("Press \'q\' to quit the sample.");
    while(Console.Read()!='q');
}

private static void OnCreated(object source, FileSystemEventArgs e)
{
   Console.WriteLine("File: " +  e.FullPath + " " + e.ChangeType);
}
Run Code Online (Sandbox Code Playgroud)

无法弄清楚这个问题.

此外,我想知道一个简单的替代品(如果有的话),因为我没有找到这个可靠..

.net c# filesystemwatcher c#-4.0

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

C#轮询监视文件夹

可能重复:
C#循环访问文件夹,直到找到正确的文件

是否可以使用c#轮询来监视"必需"文件的文件夹?我正在运行批处理文件,该文件要求某些文件位于该文件夹中.如果文件不存在,批处理作业将自动取消.我只是想知道我是否可以使用ploling监视文件夹,一旦它们可用,我希望批处理文件继续.谢谢

c#

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