2010-07-15 2 views
0

파일을 읽고 있는데 MIME 헤더 정보를 파일의 맨 위에 추가하려고합니다.C# MIME 헤더 정보를 만드시겠습니까? (Content-Type 등)

예 : test.txt라는 텍스트 파일이 있습니다.

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

가 어떻게 콘텐츠 유형이 무엇을 얻을 수 있습니다 : 그럼하여 beggining에 다음을 추가 할 바이트 배열로 파일을 읽을? 그리고 어떻게 파일의 시작에 이것을 추가하는 것이 좋습니다? 그 정보로 문자열을 만든 다음 바이트 배열로 변환하고 파일 버퍼의 앞쪽에 붙이려고했지만 인코딩 문제가 발생하는 것에 대해 걱정하고 있습니다.

+0

당신이 파일 형식을 검색 할 때 얻을 필요가 어떻게 세밀한? xml, html, jpg, gif, png, exe, pdf, doc 등을 식별하려고합니까, 아니면 텍스트와 바이너리 사이를 결정하려고합니까? –

답변

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)

+1

하지만 파일 자체에 헤더 정보를 추가하고 싶습니다. –

관련 문제