我知道这个问题现在被问了好几次,但是我检查了所有的答案,似乎没有解决我的问题。
我正在尝试将照片作为附件发送到电子邮件中。所以,首先,当这个人选择照片时,我将它们复制到一个特定的文件夹中,然后当我发送邮件时,我将它们从这个文件夹中取回。最后,我想删除该文件夹,但它会抛出您在标题中看到的异常。我已经检查过,我没有看到任何我没有关闭的流(因为我没有为此使用流),我迷路了。
我用来复制文件的方法:
private void Send_Click(object sender, RoutedEventArgs e)
{
OpenFileDialog ofd = new OpenFileDialog();
DialogResult dialogresult = ofd.ShowDialog();
///Si l'utilisateur a bien rentré un fichier
if (dialogresult == DialogResult.OK || dialogresult == DialogResult.Yes)
{
string folder = Data.HelperDirectory.getFolderDocumentAndCreate("Devis");
Dialogs.PleazeWait pw = new Dialogs.PleazeWait();
pw.Show();
///Récupère le nom du fichier que l'utilisateur a envoyé précédemment
string file = folder + System.IO.Path.GetFileName(ofd.FileName);
///Ajoute "(1)" au nom du fichier pour éviter les doublons
while (File.Exists(file))
{
file = file + " (1)";
}
///Copie le fichier dans le répertoire de sauvegardes
File.Copy(ofd.FileName, file);
pw.Close();
}
}
用于获取文件并将其附加到邮件的代码部分:
string folder = Data.HelperDirectory.getFolderDocumentAndCreate("Devis");
string[] files = Directory.GetFiles(folder);
foreach(string file in files)
{
if(!string.IsNullOrEmpty(file))
{
mail.Attachments.Add(new Attachment(file));
}
}
最后,当我尝试删除文件夹时(当然发送邮件后):
Directory.Delete(folder, true);
如果它可以帮助解决问题,我可以说这段代码设法发送邮件(因此它传递代码的第二部分)但在尝试删除文件夹时抛出异常。并且在代码的这些部分之间不会调用文件或文件夹。
提前感谢您的时间和帮助!
答案 0 :(得分:2)
取决于您的邮件类型,但在发送邮件后,您可以尝试处理该邮件。
client.Send(mail);
mail.Dispose();