Avatar
exponsk
Člen
Avatar
exponsk:

Ahoj na nete som si nasiel zdrojak ktory kontroluje ci v adresari bol vytvoreny nejaky subor a ak bol tak ho posle cestu aplikacii program.exe.

Problem vsak nastava ze pouzivam watcher ktory monitoruje vytvorenie noveho suboru skor ako je subor uplne vytvoreny - prekopirovany co ma za nasledok ze program.exe nedostane k nemu pristup (co je logicke).

Ako vie spravit cyklus ktory bude kontrolovat ci uz je program volny ci uz je prekopirovany a az nasledne posle cestu. Nieco take ako http://stackoverflow.com/…tely-written

 
Odpovědět 30.12.2014 10:42
Avatar
exponsk
Člen
Avatar
exponsk:

Tu je zdrojak do ktoreho by som to potrebovla zapracovat

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

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);
        Console.WriteLine(e.FullPath);







        var processa = new Process();
        processa.StartInfo.FileName = "D:\\program.exe";
        processa.StartInfo.Arguments = (e.FullPath + " -l c:\\a1223.txt");
        processa.StartInfo.UseShellExecute = false;
        processa.StartInfo.RedirectStandardOutput = false;
        processa.StartInfo.CreateNoWindow = true;
        processa.Start();


    }

    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);
    }
}
 
Nahoru Odpovědět 30.12.2014 10:45
Avatar
exponsk
Člen
Avatar
exponsk:

Aj tu som nieco nasiel len to neviem dohodit do mojho zdrojaku.

http://tech.sunnyw.net/…-access.html

 
Nahoru Odpovědět 30.12.2014 11:32
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 3 zpráv z 3.