/// <summary> /// Creates a new <see cref="ArHeader"/> for the specified file name. (Name may not contain subdirectories). /// </summary> /// <param name="name">The name of the file.</param> /// <param name="size">The size of the file in bytes.</param> /// <param name="fileMode">the unix filemode to use.</param> /// <param name="owner">the unix owner.</param> /// <param name="group">the unix group.</param> /// <param name="modificationTime">The last modification time.</param> /// <returns>Returns a new header instance.</returns> public static ArHeader CreateFile(string name, long size, int fileMode, int owner, int group, DateTime modificationTime) { var result = new ArHeader(); result.Initialize(name, size, fileMode, owner, group, modificationTime); return(result); }
/// <summary> /// writes a file header to the ar file. /// </summary> /// <param name="header">Header to write.</param> public void WriteHeader(ArHeader header) { if (header == null) { throw new ArgumentNullException(nameof(header)); } StartOperation(Operation.WriteHeader); topStream.Write(header.Data, 0, 60); }
/// <summary> /// reads a header from the ar file throws an EndOfStreamException if the last entry was read already. /// </summary> /// <returns>the header of the next file.</returns> public ArHeader ReadHeader() { StartOperation(Operation.ReadHeader); return(ArHeader.FromStream(topStream)); }