2012-06-21 3 views
0

첨부 파일과 함께 보낸 이메일을 zip 파일로 보냈습니다. 어떤 이유로 이메일 클라이언트가 별도의 파일로 첨부하지 않고 이메일의 텍스트로 렌더링했습니다. 다른 zip 파일 복사본은 없습니다. 나는 그것을 되 찾으려고 노력하고 있지만 가능한지 모르겠다. 전자 메일은 텍스트에서 이와 같은 파일을 보여줍니다.파일 형식 문제 (일반 텍스트)

>Content-Type: application/x-zip-compressed; name="me.zip"; 
> 
>Content-Disposition: attachment; filename="me.zip" 
> 
>Content-Transfer-Encoding: base64 
> 
> 
> 
>UEsDBBQAAQAIANeV9y5y6d5oG..... etc. 

연령대에 따라 무작위로 계속됩니다. 누구나 그러한 파일을 복구 할 수 있는지 알고 있습니까?

모든 포인터 주셔서 감사합니다.

+0

난 그냥 제대로 ... 다시 우편을 보내는 사람에게 물어 것입니다. –

+0

빈 .txt 파일을 만들고 UEsD ... 텍스트를 붙여 넣습니다. 파일 이름을 .zip으로 바꾸고 작동하는지 확인하십시오. 나는 잘 모르지만 나는 그것을 줄 것이다. – blitzen

답변

0

여기에있는 코드를 사용하여이 문제를 해결했습니다. 온라인 base64 디코더는 작동하지 않지만이 코드 스 니펫을 통해 작동했습니다. 수정할 필요없이 복사하여 붙여 넣기 만하면됩니다.

http://msdn.microsoft.com/en-us/library/system.convert.frombase64string%28v=vs.110%29.aspx

public void DecodeWithString() { 
    System.IO.StreamReader inFile;  
    string base64String; 

    try { 
     char[] base64CharArray; 
     inFile = new System.IO.StreamReader(inputFileName, 
           System.Text.Encoding.ASCII); 
     base64CharArray = new char[inFile.BaseStream.Length]; 
     inFile.Read(base64CharArray, 0, (int)inFile.BaseStream.Length); 
     base64String = new string(base64CharArray); 
    } 
    catch (System.Exception exp) { 
     // Error creating stream or reading from it. 
     System.Console.WriteLine("{0}", exp.Message); 
     return; 
    } 

    // Convert the Base64 UUEncoded input into binary output. 
    byte[] binaryData; 
    try { 
     binaryData = 
     System.Convert.FromBase64String(base64String); 
    } 
    catch (System.ArgumentNullException) { 
     System.Console.WriteLine("Base 64 string is null."); 
     return; 
    } 
    catch (System.FormatException) { 
     System.Console.WriteLine("Base 64 string length is not " + 
     "4 or is not an even multiple of 4."); 
     return; 
    } 

    // Write out the decoded data. 
    System.IO.FileStream outFile; 
    try { 
     outFile = new System.IO.FileStream(outputFileName, 
           System.IO.FileMode.Create, 
           System.IO.FileAccess.Write); 
     outFile.Write(binaryData, 0, binaryData.Length); 
     outFile.Close(); 
    } 
    catch (System.Exception exp) { 
     // Error creating stream or writing to it. 
     System.Console.WriteLine("{0}", exp.Message); 
    } 
} 
2

base64로 인코딩 된 파일이므로 base64로 인코딩 된 문자를 간단하게 디코딩하여 결과를 파일로 출력 할 수 있습니다. 암호화 된 파일이므로 이진 데이터가되므로 더욱 이상하게 보입니다.

단서는 Content-Transfer-Encoding 헤더에 있습니다.

+0

zip 파일은 암호화되어있다. 그래서 나는 이것을 해독하여 파일로 출력하고 .zip으로 이름을 바꿀 수 있다고 말하는 것이다. – creatiive

+0

@creative 이론적으로, 그렇습니다. –

+0

텍스트를 웹 사이트 http://www.base64decode.org/에 복사했습니다. 그런 다음 번역본을 복사하여 텍스트 파일로 저장 한 다음 .zip으로 이름을 변경했습니다. base64 디코딩이 텍스트를 보았 기 때문에 효과가있는 것 같아요, 지퍼에 파일 이름이 있습니다! 그러나 내가 zip을 열려고 할 때 그것은 "archieve의 예기치 않은 끝"을 말한다. 필자는 파일 이름을 볼 수 있기 때문에 가까운 거리에 있지만 필자는 파일에서 일부 끝 문자가 누락 되었습니까? – creatiive