public void AddDirectory(string name, DateTime dt, string mode) { name = name.Replace('\\', '/'); if (name.EndsWith("/") == false) { name = name + "/"; } if (dirList.ContainsKey(name) == false) { TarHeader h = TarUtil.CreateTarHeader(name, encoding, 5, 0, dt, mode); fifo.Write(Util.StructToByte(h)); dirList.Add(name, 0); } }
public void AddFileStart(string name, long size, DateTime dt, string directory_mode, string mode) { if (currentFileSize != 0 || currentPos != 0) { throw new ApplicationException("last file not completed."); } name = name.Replace('\\', '/'); if (Str.InStr(name, "/", true)) { AddDirectory(Path.GetDirectoryName(name), dt, directory_mode); } TarHeader h = TarUtil.CreateTarHeader(name, encoding, 0, size, dt, mode); fifo.Write(Util.StructToByte(h)); currentFileSize = size; currentPos = 0; }