【问题标题】:How to determine the file size from an attachment to a POP3 message如何确定 POP3 邮件附件的文件大小
【发布时间】:2010-09-16 11:02:13
【问题描述】:

我正在编写一个程序来读取 POP3 邮箱并将电子邮件信息上传到我的票务系统。然后我想把附件也上传。除了文件大小之外,我已经获得了我需要的所有信息。

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

我正在使用 C# 和 .NET 3.5。

谢谢!!!

【问题讨论】:

标签: c# .net file


【解决方案1】:

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
}

这是未经测试的,但大概你有很好的测试数据,你可以尝试一下:)

【讨论】:

  • @Jon Skeet - 对于 int size = (x*3)/4;应该是 x.length 吗?谢谢!
  • 没问题.. 对于文件大小,这似乎工作得很好。现在我必须弄清楚如何让这个库解析附件,但这是另一个问题:)。谢谢!
  • 我发现了另一个问题。感谢您的帮助。
猜你喜欢
  • 1970-01-01
  • 2021-12-14
  • 2015-01-15
  • 2016-08-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-26
相关资源
最近更新 更多