我正在读取文件,并希望将MIME标头信息添加到文件的顶部。
例如:我有一个名为test.txt的文本文件。我将文件读入一个字节数组,然后将以下内容附加到beggining:
Content-Type: text/plain;
name="test.txt"
Content-Transfer-Encoding: binary
Content-Disposition: attachment;
filename="test.txt"
我如何获得内容类型是什么?你会如何建议将其添加到文件的开头?我打算用这些信息创建一个字符串,然后将其转换为字节数组并将其粘贴在我的文件缓冲区的前面,但我担心会遇到编码问题。
答案 0 :(得分:2)
您无法将标头信息添加到文件本身;当您使用某些协议(主要是SMTP和HTTP)时,它会与文件一起传输。
编辑:如果您希望从文件内容中计算出内容类型(也称为Internet media type),您可能希望查看mime-util或Apache Tika之类的内容。
编辑2:这个问题的答案将有助于.NET中的内容类型检测:
编辑3:如果您知道正在处理的文件格式,则可以添加您希望的任何仲裁信息。您需要特殊情况下的每种文件格式。我无法想象您为什么要在文件中包含协议信息,但这取决于您!
编辑4:将文本添加到文本文件的开头:
static void WriteBeginning(string filename, string insertedtext)
{
string tempfile = Path.GetTempFileName();
StreamWriter writer = new StreamWriter(tempfile);
StreamReader reader = new StreamReader(filename);
writer.WriteLine(insertedtext);
while (!reader.EndOfStream)
writer.WriteLine(reader.ReadLine());
writer.Close();
reader.Close();
File.Copy(tempfile, filename, true);
}
(credit)