C # Создать информацию заголовка MIME?(Content-Type и т. Д.) - PullRequest
0 голосов
/ 15 июля 2010

Я читаю в файле и хочу добавить информацию заголовка MIME в начало файла.

Например: у меня есть текстовый файл с именем test.txt.Я читаю файл в байтовом массиве, затем хочу добавить в начало следующее:

Content-Type: text/plain;
     name="test.txt"
Content-Transfer-Encoding: binary
Content-Disposition: attachment;
     filename="test.txt"

Как я могу получить тип содержимого?И как бы вы порекомендовали добавить это в начало файла?Я планировал создать строку с этой информацией, затем преобразовать ее в байтовый массив и прикрепить ее к передней части моего файлового буфера, но меня беспокоит проблема кодирования.

1 Ответ

2 голосов
/ 15 июля 2010

Вы не можете добавить информацию заголовка в сам файл; он передается вместе с файлом, когда вы используете определенные протоколы (главным образом SMTP и HTTP).

РЕДАКТИРОВАТЬ: Если вы хотите определить тип содержимого (также известный как Интернет-тип мультимедиа ) из содержимого файла, вы можете посмотреть что-то вроде mime-util * 1006. * или 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);
}

( кредит )

...