System.io.ioexception: процесс не может получить доступ к файлу, поскольку он используется другим процессом. .
Привет, что я делаю, так это создаю dir watcher, который будет смотреть dir, например "A" , и копировать файл с определенным именем в другую папку, как только он увидит файл в dir A в пункт назначения dir B. Я бросил файл в директорию "а", и он сработал. но когда я запустил программу на своем локальном компьютере и установил dir для просмотра и destination dir на сервере, она выдает мне следующую ошибку.
Как мне с этим справиться?
Необработанное исключение: System.IO.IOException: процесс не может получить доступ к файлу '\\IP-exapp-101\c$\WorkDir\WatchedDir\_f$12345.dat', поскольку он используется другим процессом.
в системе.ИО.__Ошибка.WinIOError(Int32 errorCode, String maybeFullPath)
в системе.ИО.Файл.InternalCopy(строка имя_файла_исходного_кода, Строковый параметр destfilename, логическое перезаписать, логическое checkHost)
в системе.ИО.Файл.Копия(строка имя_файла_исходного_кода, Строковый параметр destfilename)
в iSpy_File.Программа.OnChanged(Object source, FileSystemEventArgs e) in c:\users\xuser\documents\visual studio 2015\Projects\iSpy_File\iSpy_File\Program. cs: строка 68
в System.IO.FileSystemWatcher.OnCreated(FileSystemEventArgs e)
в System.IO.FileSystemWatcher.NotifyFileSystemEventArgs(Int32 action, String name)
в System.IO.FileSystemWatcher.CompletionStatusChanged(uint32 errorCode, UInt32 numBytes, NativeOverlapped* overlappedPointer)
в системе.Нарезание резьбы._IOCompletionCallback.PerformIOCompletionCallback(uint32 errorCode, UInt32 numBytes, NativeOverlapped* pOVERLAP)
Что я уже пробовал:
Я попытался заглянуть в интернет..
мой код:
my code: public static void Run() { string[] args = System.Environment.GetCommandLineArgs(); // If a directory is not specified, exit program. if (args.Length != 3) { // Display the proper way to call the program. Console.WriteLine("Please Provide Source and destination directory: iSpy_Folder.exe <Source dir> <Destination dir>"); 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 = "*.*"; //// will track changes in sub-folders as well watcher.IncludeSubdirectories = true; // 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 Program."); while (Console.Read() != 'q') ; } // Define the event handlers. private static void OnChanged(object source, FileSystemEventArgs e) { string[] args = System.Environment.GetCommandLineArgs(); // Specify what is done when a file is changed, created, or deleted. Console.WriteLine("File: " + e.FullPath + " " + e.ChangeType); if ("_F$"== e.FullPath.Substring(e.FullPath.LastIndexOf("\\")+1, 3).ToUpper()) { if (File.Exists(e.FullPath)) { File.Copy(e.FullPath, args[2] + "\\" + e.FullPath.Substring(e.FullPath.LastIndexOf("\\"))); Console.WriteLine("File Copied"); } } }