NagaNimesh 11474558 Ответов: 2

Как удалить файлы из исходной папки после завершения процесса и их копирования в пункт назначения?


привет всем, что я сделал с обработкой файлов из исходной папки в целевую, но мое намерение состоит в том, чтобы удалить файлы в исходной папке после завершения обработки.

но я получаю ошибку типа "процесс не может получить доступ к файлу". C:\Datacap\APT\Images\Input\APT001.tif-потому что он используется другим процессом."

Что я уже пробовал:

привет всем, что я сделал с обработкой файлов из исходной папки в целевую, но мое намерение состоит в том, чтобы удалить файлы в исходной папке после завершения обработки.

но я получаю ошибку типа "процесс не может получить доступ к файлу". C:\Datacap\APT\Images\Input\APT001.tif-потому что он используется другим процессом."

2 Ответов

Рейтинг:
1

NagaNimesh 11474558

System.GC.Collect();// вызывает немедленную сборку мусора всех поколений.

Системы.ГК.WaitForPendingFinalizers();// не будет остановки всех текущих запущенных потоков

теперь вы можете удалить свои файлы и папки..как показано ниже

Системы.ИО.Directoryinfoкласс Ди = новый Directoryinfoкласс("свой путь");

foreach (файл FileInfo в di.Заражен())
{
файл.Удалить();
}
по каждому элементу (Directoryinfoкласс dir в Ди.GetDirectories())
{
dir.Удалить (true);
}


Рейтинг:
0

Jochen Arndt

Вы должны определить процесс, который открыл файл.

Для идентификации процессов можно использовать Исследователь Процессов[^] (нажмите Ctrl+F или откройте меню найти, выберите дескриптор файла или DLL и введите имя файла).

Если это ваше приложение, просто убедитесь, что файлы были закрыты, прежде чем удалять их.


NagaNimesh 11474558

Thanq для ответа. но я не могу понять, что мне нужно сделать сейчас u сказал process explorer, что мне нужно вызвать .dll в моем приложении???

Jochen Arndt

Используйте проводник процессов, чтобы узнать, какой процесс открыл файл:
- Запустить его
- Нажмите Ctrl+F или выберите "Найти-найти дескриптор или DLL" (пункт меню)
- Введите имя файла в поле ввода "дескриптор или подстрока DLL".
- Нажмите Кнопку " Поиск"
- Вы получите список процессов, в которых был открыт файл

Если это другой процесс, вы / пользователь должны вручную закрыть файл в этом процессе. Он не может быть закрыт вашим приложением (хотя это и возможно, но это не так).

Если это ваш процесс, проверьте свой код, где файл мог быть открыт. Убедитесь, что файл закрыт в вашем коде, когда он больше не нужен.

Вы как программист несете ответственность за закрытие файлов после их открытия, когда все операции с ними завершены.

Если вы, например, открыли файл с помощью этого файла.Метод Create () и объект file / stream не находятся в локальной области видимости, используйте файл.Метод Close () после завершения работы. В противном случае файл будет закрыт, когда объект file/stream выйдет за пределы области видимости. Если вы попытаетесь удалить файл до того, как это произойдет, вы получите сообщение об ошибке "используется другим процессом".

NagaNimesh 11474558

скажите, пожалуйста, как закрыть файлы??

NagaNimesh 11474558

танк Йохен Арндт за ваше предложение.Я выполнил свою задачу, используя следующее решение .