Reden Rodriguez Ответов: 1

Как удалить файл, если к нему обращается другой процесс


Привет я знаю что это распространенная проблема но я все еще новичок в такого рода проблемах

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



string[] filePaths = Directory.GetFiles(filePath, "*.EDI");
                foreach (var item in filePaths)
                {
                    string containerOperator = cmbOperator.SelectedItem.ToString();
                    long containerID = Convert.ToInt64(cmbOperator.SelectedValue);
                    containerOperator = Regex.Replace(containerOperator, "[0-9]", "");
                    containerOperator = Regex.Replace(containerOperator, ",", "");
                    containerOperator = Regex.Replace(containerOperator, @"[^0-9a-zA-Z:,]", "");
                    if (item.Contains(containerOperator))
                    {
                        oCodecoLogic.emailCoarriSenderByVess(containerID, containerOperator, item);
                        File.Delete(item);
                    }
                }


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

я попытался повторить цикл, но это не сработает, и я думаю, что это глупая идея.

1 Ответов

Рейтинг:
7

Dave Kreskowiak

Вы не.

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