お世話になります。
これまで.tgzファイルを解凍する際は
public static void Untar(string tarfile, string extractPath)
{
Stream st = new GZipInputStream( File.OpenRead( tarfile ) );
TarArchive archive = TarArchive.CreateInputTarArchive( st, TarBuffer.DefaultBlockFactor );
archive.SetKeepOldFiles( false );
archive.SetAsciiTranslation( false);
archive.SetUserInfo( 0, "", 0, "None" );
Directory.CreateDirectory( extractPath );
archive.ExtractContents( extractPath );
archive.CloseArchive();
}
で可能でした。
ただ今回の.tgzファイルの中には、ファイル名にWindows禁則文字である「:」が含まれたファイルが存在するため、
archive.ExtractContents( extractPath );
の時点で「パスが不適切だ」的なエラーが表示され、展開できません。。
禁則文字を含むファイル名のファイルを持つアーカイブを展開するにはどうすればよいでしょうか。。
良い案をお持ちの方、何卒ご教授賜りますよう、お願いいたします。
【圧縮元のフォルダ構成】
[folder01]
filename01
filename02
:filename03
filename04
・・・
⇒このフォルダがLinux上でfolder01.tar.gzとして固められている。
通常はWindows上へ持ってきて拡張子を.tgzに変更して、上のソースで展開している。