C++ 在C+中使用EA Sendmail时,如何在发送邮件后删除附件文件+;?

C++ 在C+中使用EA Sendmail时,如何在发送邮件后删除附件文件+;?,c++,visual-studio,email-attachments,easendmail,C++,Visual Studio,Email Attachments,Easendmail,我正在使用Visual Studio 2015使用EA Sendmail库创建一个简单的发送邮件程序。 我尝试发送“D:\tmp\pic.jpg”,发送成功后,我会通过命令将其删除 从中删除(“D:\\tmp\\pic.jpg”)\include。但是这个文件还在吗?我的错误是什么?如果是Windows,可能会发生三种情况: 1.文件仍被发送邮件的延迟操作阻止。 2.文件已被防病毒软件阻止,但它可能会挂起ffile open活动,一些防病毒软件只是阻止文件删除\文件移动。 3.权限问题。您正在使

我正在使用Visual Studio 2015使用EA Sendmail库创建一个简单的发送邮件程序。 我尝试发送“D:\tmp\pic.jpg”,发送成功后,我会通过命令将其删除
中删除(“D:\\tmp\\pic.jpg”)
\include
。但是这个文件还在吗?我的错误是什么?

如果是Windows,可能会发生三种情况: 1.文件仍被发送邮件的延迟操作阻止。 2.文件已被防病毒软件阻止,但它可能会挂起ffile open活动,一些防病毒软件只是阻止文件删除\文件移动。 3.权限问题。您正在使用磁盘根目录中的非标准文件夹。它很可能从根目录继承了权限。在您的特定情况下,您编程runneth时没有足够(未提升?)的权限。 4.UTF-16路径问题。你提供的是真正的道路吗


您正在使用标准库中的remove()?这是一个基于POSIX“仿真”层的Windows API,它缺乏特定于窗口的功能。。您无法确定实际原因,也无法操作ACL\权限,并且仅支持path中的Latin1。Windows在NTFS上支持Unicode(UTF-16),但要使用它,需要从接受widechar字符串(DeleteFileW)的“本机”API调用函数。Windows API允许获得比POSIX更多的错误代码状态。此外,Windows还提供了监视\等待文件是否被其他操作打开的机制,但该机制仅适用于高级用户,不幸的是,这是taskmgr的内核级驱动程序。

如果是Windows,则可能会发生三种情况: 1.文件仍被发送邮件的延迟操作阻止。 2.文件已被防病毒软件阻止,但它可能会挂起ffile open活动,一些防病毒软件只是阻止文件删除\文件移动。 3.权限问题。您正在使用磁盘根目录中的非标准文件夹。它很可能从根目录继承了权限。在您的特定情况下,您编程runneth时没有足够(未提升?)的权限。 4.UTF-16路径问题。你提供的是真正的道路吗


您正在使用标准库中的remove()?这是一个基于POSIX“仿真”层的Windows API,它缺乏特定于窗口的功能。。您无法确定实际原因,也无法操作ACL\权限,并且仅支持path中的Latin1。Windows在NTFS上支持Unicode(UTF-16),但要使用它,需要从接受widechar字符串(DeleteFileW)的“本机”API调用函数。Windows API允许获得比POSIX更多的错误代码状态。此外,Windows还提供了监视\等待文件是否被其他操作打开的机制,但该机制仅对高级用户可用,不幸的是,这是taskmgr的内核级驱动程序。

您是否检查了?@πάντα的返回代码ῥεῖ, 它返回-1?那么出了什么问题?可能是文件仍在使用,只要发送邮件尚未完成。@πάνταῥεῖ, 我在删除命令之前添加了一个命令系统(“暂停”)。然后我可以通过Windows Exporer删除它?使用
errno
检查
remove()
调用失败的原因。是否检查了?@πάντα的返回代码ῥεῖ, 它返回-1?那么出了什么问题?可能是文件仍在使用,只要发送邮件尚未完成。@πάνταῥεῖ, 我在删除命令之前添加了一个命令系统(“暂停”)。然后我可以通过Windows Exporer删除它?使用
errno
检查失败的
remove()
调用的原因。