All Downloads are FREE. Search and download functionalities are using the official Maven repository.

dev.utils.common.file.FilePartItem Maven / Gradle / Ivy

package dev.utils.common.file;

/**
 * detail: 文件分片信息 Item
 * @author Ttt
 */
public class FilePartItem {

    // 分片索引
    public final int  partIndex;
    // 分片总数
    public final int  partCount;
    // 分片总字节
    public final long partByteLength;
    // 原始文件总字节
    public final long fileByteLength;
    // 分片字节开始索引
    public final long start;
    // 分片字节结束索引
    public final long end;

    public FilePartItem(
            int partIndex,
            int partCount,
            long partByteLength,
            long fileByteLength,
            long start,
            long end
    ) {
        this.partIndex      = partIndex;
        this.partCount      = partCount;
        this.partByteLength = partByteLength;
        this.fileByteLength = fileByteLength;
        this.start          = start;
        this.end            = end;
    }

    // =============
    // = 对外公开方法 =
    // =============

    /**
     * 判断是否 First Item
     * @return {@code true} yes, {@code false} no
     */
    public boolean isFirstItem() {
        return partIndex == 0;
    }

    /**
     * 判断是否 Last Item
     * @return {@code true} yes, {@code false} no
     */
    public boolean isLastItem() {
        return partIndex + 1 == partCount;
    }

    /**
     * 是否存在分片
     * @return {@code true} yes, {@code false} no
     */
    public boolean existsPart() {
        return partCount != 0;
    }

    /**
     * 是否只有一个分片
     * @return {@code true} yes, {@code false} no
     */
    public boolean isOnlyOne() {
        return partCount == 1;
    }

    /**
     * 获取分片文件名 ( 后缀索引拼接 )
     * @param fileName 原始文件名
     * @return 分片文件名
     */
    public String getPartName(final String fileName) {
        return FilePartUtils.getPartName(fileName, partIndex);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy