//Source https://github.com/OrchardCMS/OrchardCore/tree/dev/src/OrchardCore

namespace Grand.Business.Core.Interfaces.Storage
{
    public interface IFileStoreEntry
    {
        /// <summary>
        /// Gets the full path of the file store entry within the file store.
        /// </summary>
        string Path { get; }

        /// <summary>
        /// Gets the name of the file store entry.
        /// </summary>
        string Name { get; }

        /// <summary>
        /// Gets the full path of the file store entry's containing directory within the file store.
        /// </summary>
        string DirectoryPath { get; }

        /// <summary>
        /// Gets the full path of the file store entry's containing directory within the file store.
        /// </summary>
        string PhysicalPath { get; }

        /// <summary>
        /// Gets the length of the file (0 if the file story entry is a directory).
        /// </summary>
        long Length { get; }

        /// <summary>
        /// Gets the date and time in UTC when the file store entry was last modified.
        /// </summary>
        DateTime LastModifiedUtc { get; }

        /// <summary>
        /// Gets a boolean indicating whether the file store entry is a directory.
        /// </summary>
        bool IsDirectory { get; }
    }
}
