티스토리 뷰

반응형

zip과 tar 둘 다 한 라이브러리로 처리 하려고 하는데

 

sharpziplib-standard에서 Zip시에 한글 깨져서 아래 추가, 아래 추가 안해도 반디집으로 열어서 코드페이지 utf-8로 바꾸면 나옴

ICSharpCode.SharpZipLib.Zip.ZipConstants.DefaultCodePage = 949;

 

근데 Tar의 경우 한글로 시작하면 entry에 들어가지도 않고, 한글이 중간에 있으면 들어가긴 하는데 깨짐, 코드페이지 바꿔봐도 차이 없음

 

zip에서는 위 처럼 codepage를 제공하는데 Tar는 딱히 없어서 SharpCompress 라이브러리 테스트 중

 

SharpCompress Tar Archive, Exclude specific file extension

[TestMethod("SharpCompressTest-TAR")]
public void SharpCompressTest_TAR()
{
    string str_source_path = @"D:\";
    string str_tar_file_name = @"D:\test.tar";

    using (var archive = TarArchive.Create())
    {
        https://learn.microsoft.com/ko-kr/dotnet/api/system.io.directory.enumeratefiles?view=net-7.0
        // 제외도 시켜야해서 못 씀, search pattern에 정규식도 못씀
        // archive.AddAllFromDirectory(str_source_path, "!*.tar", SearchOption.AllDirectories);

        using (archive.PauseEntryRebuilding())
        {
            foreach (var path in Directory.EnumerateFiles(str_source_path, "*.*", SearchOption.AllDirectories)
                         .Where(f=>Path.GetExtension(f) != ".tar"))
            {

                var fileInfo = new FileInfo(path);
                Trace.WriteLine(fileInfo);
                Trace.WriteLine(fileInfo.Extension);
                archive.AddEntry(
                    path.Substring(str_source_path.Length),
                    fileInfo.OpenRead(),
                    true,
                    fileInfo.Length,
                    fileInfo.LastWriteTime
                );
            }
        }


        archive.SaveTo(str_tar_file_name, CompressionType.None);
    }
}
댓글

티스토리 방명록

최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday