diff --git a/src/LibHac/Fs/ConcatenationFileSystem.cs b/src/LibHac/Fs/ConcatenationFileSystem.cs index 0cc8dd90..9d1c8273 100644 --- a/src/LibHac/Fs/ConcatenationFileSystem.cs +++ b/src/LibHac/Fs/ConcatenationFileSystem.cs @@ -7,14 +7,39 @@ using System.Runtime.InteropServices; namespace LibHac.Fs { + /// + /// An that stores large files as smaller, separate sub-files. + /// + /// + /// This filesystem is mainly used to allow storing large files on filesystems that have low + /// limits on file size such as FAT filesystems. The underlying base filesystem must have + /// support for the "Archive" file attribute found in FAT or NTFS filesystems. + /// + /// A may contain both standard files or Concatenation files. + /// If a directory has the archive attribute set, its contents will be concatenated and treated + /// as a single file. These sub-files must follow the naming scheme "00", "01", "02", ... + /// Each sub-file except the final one must have the size that was specified + /// at the creation of the . + /// public class ConcatenationFileSystem : IFileSystem { private const long DefaultSubFileSize = 0xFFFF0000; // Hard-coded value used by FS private IAttributeFileSystem BaseFileSystem { get; } private long SubFileSize { get; } + /// + /// Initializes a new . + /// + /// The base for the + /// new . public ConcatenationFileSystem(IAttributeFileSystem baseFileSystem) : this(baseFileSystem, DefaultSubFileSize) { } + /// + /// Initializes a new . + /// + /// The base for the + /// new . + /// The size of each sub-file. Once a file exceeds this size, a new sub-file will be created public ConcatenationFileSystem(IAttributeFileSystem baseFileSystem, long subFileSize) { BaseFileSystem = baseFileSystem;