Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无法扫描Outlook附件以进行加密_C#_.net_Outlook Addin - Fatal编程技术网

C# 无法扫描Outlook附件以进行加密

C# 无法扫描Outlook附件以进行加密,c#,.net,outlook-addin,C#,.net,Outlook Addin,我正在尝试使用ICSharpCode.SharpZipLib检测加密附件, 但在这一行上调试时代码中断: FileStream fileStreamIn=newfilestream(attachtype,FileMode.Open,FileAccess.Read) 是否有其他方法可以获取Outlook附件并扫描加密 if (attachments.Count != 0) { for (int i = 1; i <= mail.Attachments.Count

我正在尝试使用ICSharpCode.SharpZipLib检测加密附件, 但在这一行上调试时代码中断:

FileStream fileStreamIn=newfilestream(attachtype,FileMode.Open,FileAccess.Read)

是否有其他方法可以获取Outlook附件并扫描加密

if (attachments.Count != 0)           
{
    for (int i = 1; i <= mail.Attachments.Count; i++)
    {                       
        String attachtype = mail.Attachments[i].FileName.ToLower();

        if (extensionsArray.Any(attachtype.Contains))
        {                   
            FileStream fileStreamIn = new FileStream(attachtype, FileMode.Open, FileAccess.Read);                            
            ZipInputStream zipInStream = new ZipInputStream(fileStreamIn);
            ZipEntry entry = zipInStream.GetNextEntry();
            MessageBox.Show("IsCrypted: " + entry.IsCrypted);
        }
    }
}
if(attachments.Count!=0)
{

对于(int i=1;i我假设您使用的是Microsoft.Office.Interop.Outlook命名空间

根据MSDN,Filename属性执行以下操作():

返回一个字符串(C#格式的字符串),表示 附件。只读

因此,该值只是文件名,而不是位置(它在磁盘上不作为可访问文件存在)。当仅将filaneme提供给
FileStream
时,它将尝试在本地目录(可能不存在)中打开具有该名称的文件


从文档中可以看出,您需要使用
SaveAsFile
方法()将其存储到一个临时文件中,然后从中加载
FileStream

比如:

// Location to store file so we can access the data.
var tempFile = Path.GetTempFileName();
try {
    // Save attachment into our file
    mail.Attachments[i].SaveToFile(tempFile);

    using(var stream = File.OpenRead(tempFile)) {
        // Do stuff
    }
} finally {
    // Cleanup the temp file
    File.Delete(tempFile);
}

…但在这行调试时代码中断:
您收到的异常(和或消息)是什么?它说找不到源代码。感谢您的解决方案,这节省了我的时间!