如何确定附件到POP3邮件的文件大小

时间:2008-10-10 06:05:59

标签: c# .net file

我正在编写一个程序来从POP3邮箱中读取并将电子邮件上传到我的票证系统中。我想接收附件并上传它们。除了文件大小,我已经获得了所需的所有信息。

有没有办法从邮件消息中确定文件大小?我正在接受附件,解码base64编码的字符串并将其分解为字节数组以存储在数据库中。如果有另一种方法来确定文件大小,我也愿意尝试。

我在C#和.NET 3.5中工作。

感谢!!!

1 个答案:

答案 0 :(得分:4)

base64解码字节数组的大小是否正确?如果是这样,你需要做的就是计算尺寸而不解码它,对吗?

大小为N的字节数组将编码为(N * 4)/ 3字节,总是向上舍入。您需要查看字符串的最后几个字符,以确定要舍入多少以进行舍入。基本上它应该是这样的:

string x = GetBase64DataFromWherever();
int size = (x.Length *3)/4;
if (x.EndsWith("="))
{
    size--;
}
if (x.EndsWith("=="))
{
    size--; // 1 will already have been removed by the if statement above
}

这是未经测试的,但可能您已经获得了可以尝试的良好测试数据:)