Hi Jibesh
thanks for your reply.
I have tried with FilesystemWatcher. but there is problem.
1) Filesystemwatcher has only 4 events watcher.Changed,
watcher.Created, watcher.Deleted, watcher.Renamed
there is no file moved event.
2) In FileSystemWatcher we have to specify Folder root path, for
example watcher.Path="C:\\";.
but in my case user can paste anywere in the Network, or some other
drive.
Is there any way with shell programming in C# 2.0
Regards
Mustafa
On Feb 27, 11:54*pm, "Jibesh" <jibesh...@gmail.com> wrote:
> Hello Mustafa,
>
> In .Net 2.0 we have a special delegate to monitor the changes made to the
> file.
> i.e FileSystemWatcher.
>
> Go through the following sample from MSDN
>
> 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);
> * * }
>
> }
>
> Hope this helps much..
>
> Thanks
> Jibesh
>
> <mustafa.mustaf...@gmail.com> wrote in message
>
> news:6ba58e52-20cd-4c8c-9cee-(E-Mail Removed)...
>
>
>
> > How can we get the path of a file or folder when we move or copy and
> > paste files or folders from one directory / *folder to another?
>
> > Is there any "event" in Windows which identifies the new path of the
> > pasted files or folder which can be picked up by an application in C#
> > Winform 2.0.
>
> > Problem discription:
> > I am storing some select files and folders path in my database.
> > Problem is if files or folders are moved from outside of my
> > application then path is not updating in my database.
>
> > I need to update the path (including network path) in my database if
> > files or folder moved from outside of my application.
>
> > Thank you.- Hide quoted text -
>
> - Show quoted text -
|