Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# asp.net每天扫描一次文件夹_C#_Asp.net - Fatal编程技术网

C# asp.net每天扫描一次文件夹

C# asp.net每天扫描一次文件夹,c#,asp.net,C#,Asp.net,我有asp.net中的web应用程序。我想每天扫描一次文件夹,以确定是否导入了新文件并进行一些处理。你建议我把这个密码放在哪里?。我需要服务吗 如果您需要从服务外部调用此代码,那么将很有意义,否则您可以在应用程序中使用它。对我来说,这听起来像是计算机之间的同步问题,如果是这样的话,你可以找到很多解决方案,其中一些相当不错,看看 另一个想法是对您要检查的文件使用版本控制(svn),这将使您能够从命令行中发现更改的文件,这不一定有帮助,但值得一提。如果您需要从服务外部调用此代码,则可以选择,否则您可

我有asp.net中的web应用程序。我想每天扫描一次文件夹,以确定是否导入了新文件并进行一些处理。你建议我把这个密码放在哪里?。我需要服务吗

如果您需要从服务外部调用此代码,那么将很有意义,否则您可以在应用程序中使用它。对我来说,这听起来像是计算机之间的同步问题,如果是这样的话,你可以找到很多解决方案,其中一些相当不错,看看


另一个想法是对您要检查的文件使用版本控制(svn),这将使您能够从命令行中发现更改的文件,这不一定有帮助,但值得一提。

如果您需要从服务外部调用此代码,则可以选择,否则您可以在应用程序中使用它。对我来说,这听起来像是计算机之间的同步问题,如果是这样的话,你可以找到很多解决方案,其中一些相当不错,看看

另一个想法是对要检查的文件使用版本控制(svn),这将使您能够从命令行中发现已更改的文件,不确定这是否有帮助,但值得一提。

您可以使用类

此类侦听文件系统更改通知,并在目录或目录中的文件更改时引发事件

using System;
using System.IO;
using System.Security.Permissions;

public class Watcher
{
    public static void Main()
    {
    Run();
    }

    [PermissionSet(SecurityAction.Demand, Name="FullTrust")]
    public static void Run()
    {
        string[] args = System.Environment.GetCommandLineArgs();

        // If a directory is not specified, exit program. 
        if(args.Length != 2)
        {
            // Display the proper way to call the program.
            Console.WriteLine("Usage: Watcher.exe (directory)");
            return;
        }

        // Create a new FileSystemWatcher and set its properties.
        FileSystemWatcher watcher = new FileSystemWatcher();
        watcher.Path = args[1];
        /* Watch for changes in LastAccess and LastWrite times, and
           the renaming of files or directories. */
        watcher.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite
           | NotifyFilters.FileName | NotifyFilters.DirectoryName;
        // Only watch text files.
        watcher.Filter = "*.txt";

        // Add event handlers.
        watcher.Changed += new FileSystemEventHandler(OnChanged);
        watcher.Created += new FileSystemEventHandler(OnChanged);
        watcher.Deleted += new FileSystemEventHandler(OnChanged);
        watcher.Renamed += new RenamedEventHandler(OnRenamed);

        // 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');
    }

    // Define the event handlers. 
    private static void OnChanged(object source, FileSystemEventArgs e)
    {
        // Specify what is done when a file is changed, created, or deleted.
       Console.WriteLine("File: " +  e.FullPath + " " + e.ChangeType);
    }

    private static void OnRenamed(object source, RenamedEventArgs e)
    {
        // Specify what is done when a file is renamed.
        Console.WriteLine("File: {0} renamed to {1}", e.OldFullPath, e.FullPath);
    }
}
你可以使用Class

此类侦听文件系统更改通知,并在目录或目录中的文件更改时引发事件

using System;
using System.IO;
using System.Security.Permissions;

public class Watcher
{
    public static void Main()
    {
    Run();
    }

    [PermissionSet(SecurityAction.Demand, Name="FullTrust")]
    public static void Run()
    {
        string[] args = System.Environment.GetCommandLineArgs();

        // If a directory is not specified, exit program. 
        if(args.Length != 2)
        {
            // Display the proper way to call the program.
            Console.WriteLine("Usage: Watcher.exe (directory)");
            return;
        }

        // Create a new FileSystemWatcher and set its properties.
        FileSystemWatcher watcher = new FileSystemWatcher();
        watcher.Path = args[1];
        /* Watch for changes in LastAccess and LastWrite times, and
           the renaming of files or directories. */
        watcher.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite
           | NotifyFilters.FileName | NotifyFilters.DirectoryName;
        // Only watch text files.
        watcher.Filter = "*.txt";

        // Add event handlers.
        watcher.Changed += new FileSystemEventHandler(OnChanged);
        watcher.Created += new FileSystemEventHandler(OnChanged);
        watcher.Deleted += new FileSystemEventHandler(OnChanged);
        watcher.Renamed += new RenamedEventHandler(OnRenamed);

        // 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');
    }

    // Define the event handlers. 
    private static void OnChanged(object source, FileSystemEventArgs e)
    {
        // Specify what is done when a file is changed, created, or deleted.
       Console.WriteLine("File: " +  e.FullPath + " " + e.ChangeType);
    }

    private static void OnRenamed(object source, RenamedEventArgs e)
    {
        // Specify what is done when a file is renamed.
        Console.WriteLine("File: {0} renamed to {1}", e.OldFullPath, e.FullPath);
    }
}

你拥有服务器吗?然后,您可以创建一个C#控制台应用程序,只需将exe添加到计划任务列表中即可

如果您不拥有服务器,并且无法安排任务,则只制作一个执行此任务的aspx文件。。。您每天调用一次您的aspx文件URL


使用一些在线计划程序系统,比如这一个,这样他们每天会调用您的aspx批处理页面一次。

您拥有服务器吗?然后,您可以创建一个C#控制台应用程序,只需将exe添加到计划任务列表中即可

如果您不拥有服务器,并且无法安排任务,则只制作一个执行此任务的aspx文件。。。您每天调用一次您的aspx文件URL


使用一些在线调度系统,比如这个,这样他们每天会调用一次你的aspx批处理页面。

我经常遇到这个问题。如果你问我,我会说“穷人”的解决方案是在应用程序启动时创建一些计时器,并通过计时器事件进行工作。我只是不喜欢全球拥有这种状态的想法

但是,如果您创建了一个服务或控制台应用程序,您可能会在该服务中产生依赖关系,甚至可能是关键的业务逻辑。如果您发现您需要访问web应用程序中的单例数据或其他数据,您就会陷入困境


所以我要做的是创建一个通用处理程序(.ashx),它像往常一样调用我的服务。这是网络项目的一部分。然后,调用此处理程序的调度将是一个完全不同的任务。创建一个windows服务,只需在我的处理程序上执行一个简单的http get,这很简单,也不太可能更改。

我经常遇到这个问题。如果你问我,我会说“穷人”的解决方案是在应用程序启动时创建一些计时器,并通过计时器事件进行工作。我只是不喜欢全球拥有这种状态的想法

但是,如果您创建了一个服务或控制台应用程序,您可能会在该服务中产生依赖关系,甚至可能是关键的业务逻辑。如果您发现您需要访问web应用程序中的单例数据或其他数据,您就会陷入困境


所以我要做的是创建一个通用处理程序(.ashx),它像往常一样调用我的服务。这是网络项目的一部分。然后,调用此处理程序的调度将是一个完全不同的任务。创建一个只需在我的处理程序上执行简单http get的windows服务非常简单,不太可能更改。

创建一个执行扫描和处理的批处理文件或可执行文件,并将其放入任务计划程序。创建一个执行扫描和处理的批处理文件或可执行文件,并将其放入任务计划程序。具体取决于服务器版本如果是最后的操作系统,请使用本教程如果windows版本低于7,请尝试本教程:我不拥有服务器。但是,如果我把代码放在一个aspx文件中,那么当用户启动一个新会话时,代码就会执行,对吗?因此,如果一天内没有访客,那么就不会扫描它了?不,只需创建一个aspx页面,例如“scan folder.aspx”,您必须使用浏览器调用此页面。如果页面正常工作并且扫描成功,那么下一步是让一些自动过程调用“scan folder.aspx”。因此,您建议我每天调用此页面一次。具体取决于服务器版本。如果是最后的操作系统,请使用本教程如果windows版本低于7,请尝试本教程:我不拥有服务器。但是,如果我把代码放在一个aspx文件中,那么当用户启动一个新会话时,代码就会执行,对吗?因此,如果一天内没有访客,那么就不会扫描它了?不,只需创建一个aspx页面,例如“scan folder.aspx”,您必须使用浏览器调用此页面。如果页面正常工作并且扫描成功,那么下一步就是让一些自动过程调用“scan folder.aspx”。所以你建议我每天调用一次这个页面?。