各位高人,请指点一下小弟啊, 我有个发送邮件程序,可以发送成功的, 但是发送成功之后, 我想把这些文件都移到另外一个目录里,就不行了。 报正由另一进程使用,因此该进程无法访问此文件。 请帮忙看下啊。
//发送邮件
MailMessage mm = EmailManager.Instance.GetMailMessage(to, cc, txtobj.MAILTITLE, txtobj.MAILNOTE, att);
//路径丢进去
EmailManager.Instance.Send(mm); //测试
string backupreportnamepath = ""; foreach (string txt in txtobj.MAILATT.Split(','))
{
FileInfo fi = new FileInfo(txt);
//根目录
string backuprootpath = ConfigurationManager.AppSettings["BackUpPath"];
//根目录+当天日期文件夹
string backupdatetimepath = backuprootpath + "\\" + DateTime.Now.ToString("yyyyMMdd");
//根目录+当天日期文件夹+VendorName文件夹
string backupvendornamepath = backupdatetimepath + "\\" + fi.Directory.Parent.Name;
//string backupvendornamepath = backupdatetimepath + "\\" + di.Parent.Name;
//根目录+当天日期文件夹+VendorName文件夹+当前发送完邮件的这个文件夹
backupreportnamepath = backupvendornamepath + "\\" + fi.Directory.Name;
//判断是否有备份主目录
if (!Directory.Exists(backuprootpath))
Directory.CreateDirectory(backuprootpath);
//创建当天生成文件夹
if (!Directory.Exists(backupdatetimepath))
Directory.CreateDirectory(backupdatetimepath);
//判断是否有 根目录+当天日期文件夹+VendorName文件夹
if (!Directory.Exists(backupvendornamepath))
Directory.CreateDirectory(backupvendornamepath);
//创建 根目录+当天日期文件夹+VendorName文件夹+当前发送完邮件的这个文件夹
if (!Directory.Exists(backupreportnamepath))
Directory.CreateDirectory(backupreportnamepath); fi.CopyTo(backupreportnamepath + "\\" + fi.Name, true);
fi.Delete(); }
FileInfo fitxt = new FileInfo(txtobj.TXTNAME);
fitxt.CopyTo(backupreportnamepath + "\\" + Path.GetFileName(txtobj.TXTNAME), true);
fitxt.Delete();
}这是为什么啊? 在线等。。
//发送邮件
MailMessage mm = EmailManager.Instance.GetMailMessage(to, cc, txtobj.MAILTITLE, txtobj.MAILNOTE, att);
//路径丢进去
EmailManager.Instance.Send(mm); //测试
string backupreportnamepath = ""; foreach (string txt in txtobj.MAILATT.Split(','))
{
FileInfo fi = new FileInfo(txt);
//根目录
string backuprootpath = ConfigurationManager.AppSettings["BackUpPath"];
//根目录+当天日期文件夹
string backupdatetimepath = backuprootpath + "\\" + DateTime.Now.ToString("yyyyMMdd");
//根目录+当天日期文件夹+VendorName文件夹
string backupvendornamepath = backupdatetimepath + "\\" + fi.Directory.Parent.Name;
//string backupvendornamepath = backupdatetimepath + "\\" + di.Parent.Name;
//根目录+当天日期文件夹+VendorName文件夹+当前发送完邮件的这个文件夹
backupreportnamepath = backupvendornamepath + "\\" + fi.Directory.Name;
//判断是否有备份主目录
if (!Directory.Exists(backuprootpath))
Directory.CreateDirectory(backuprootpath);
//创建当天生成文件夹
if (!Directory.Exists(backupdatetimepath))
Directory.CreateDirectory(backupdatetimepath);
//判断是否有 根目录+当天日期文件夹+VendorName文件夹
if (!Directory.Exists(backupvendornamepath))
Directory.CreateDirectory(backupvendornamepath);
//创建 根目录+当天日期文件夹+VendorName文件夹+当前发送完邮件的这个文件夹
if (!Directory.Exists(backupreportnamepath))
Directory.CreateDirectory(backupreportnamepath); fi.CopyTo(backupreportnamepath + "\\" + fi.Name, true);
fi.Delete(); }
FileInfo fitxt = new FileInfo(txtobj.TXTNAME);
fitxt.CopyTo(backupreportnamepath + "\\" + Path.GetFileName(txtobj.TXTNAME), true);
fitxt.Delete();
}这是为什么啊? 在线等。。
解决方案 »
- 关于C#遍历word文档
- 关于 XmlTextWriter 的小问题
- 应用程序window2003下可以运行,xp下不行(xp安装了.netframework2.0的)
- C# 查询两个表多条件 存储过程分页?求救
- 读写文件操作
- WPF RichTextBox如何拦截 “回车” 输入
- 急急急,关于文件拷贝问题。要不是有分数限制,给1000分的想法都有。
- 求介绍几个学习p2p的例子,C#的
- 数据库问题!弄了一天了!不得不来这里请教!
- 学c#要那些知识前提。
- 请问VISUAL studio 2005 以上的版本有没有类似DELPHI用的 CnWizards这样能在控件上能直接显示其控件名称的功能的插件。
- 请问如何向已绑定数据的datagridview中添加新行?
邮件还没发送完,而且你发送完后要释放使用的流线程。
才能CopyTo文件。
就报进程被占用
fi.CopyTo(backupreportnamepath + "\\" + fi.Name, true);
fi.Delete();CopyTo方法是可以了, Delete 就不行了
File.Delete(" URL");
显式释放.
用对象的Dispose()方法.
强制杀死进程
GC.WaitForPendingFinalizers();强制清空一下看看可不可以