diff --git a/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/Embedded/EmbeddedFileSet.cs b/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/Embedded/EmbeddedFileSet.cs index 361fd63e44..26e93d499a 100644 --- a/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/Embedded/EmbeddedFileSet.cs +++ b/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/Embedded/EmbeddedFileSet.cs @@ -45,8 +45,7 @@ namespace Volo.Abp.VirtualFileSystem.Embedded resourcePath, fullPath, CalculateFileName(fullPath), - lastModificationTime, - false + lastModificationTime ); } } @@ -58,13 +57,10 @@ namespace Volo.Abp.VirtualFileSystem.Embedded return; } - files[directoryPath] = new EmbeddedResourceFileInfo( //TODO: Create a different simpler class! - Assembly, - null, + files[directoryPath] = new VirtualDirectoryFileInfo( directoryPath, CalculateFileName(directoryPath), - lastModificationTime, - true + lastModificationTime ); if (directoryPath.Contains("/")) diff --git a/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/Embedded/EmbeddedResourceFileInfo.cs b/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/Embedded/EmbeddedResourceFileInfo.cs index 008912c48e..22df03f2ab 100644 --- a/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/Embedded/EmbeddedResourceFileInfo.cs +++ b/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/Embedded/EmbeddedResourceFileInfo.cs @@ -33,14 +33,12 @@ namespace Volo.Abp.VirtualFileSystem.Embedded public string Name { get; } - public ManifestResourceInfo ManifestResourceInfo { get; } - /// /// The time, in UTC. /// public DateTimeOffset LastModified { get; } - public bool IsDirectory { get; } + public bool IsDirectory => false; private readonly Assembly _assembly; private readonly string _resourcePath; @@ -50,28 +48,19 @@ namespace Volo.Abp.VirtualFileSystem.Embedded string resourcePath, string physicalPath, string name, - DateTimeOffset lastModified, - bool isDirectory) + DateTimeOffset lastModified) { _assembly = assembly; _resourcePath = resourcePath; PhysicalPath = physicalPath; Name = name; - - if (_resourcePath != null) - { - ManifestResourceInfo = _assembly.GetManifestResourceInfo(_resourcePath); - } - LastModified = lastModified; - IsDirectory = isDirectory; } /// public Stream CreateReadStream() { - var stream = _assembly.GetManifestResourceStream(_resourcePath); if (!_length.HasValue) diff --git a/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/VirtualDirectoryFileInfo.cs b/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/VirtualDirectoryFileInfo.cs new file mode 100644 index 0000000000..4a84ee5929 --- /dev/null +++ b/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/VirtualDirectoryFileInfo.cs @@ -0,0 +1,33 @@ +using System; +using System.IO; +using Microsoft.Extensions.FileProviders; + +namespace Volo.Abp.VirtualFileSystem +{ + public class VirtualDirectoryFileInfo : IFileInfo + { + public bool Exists => true; + + public long Length => 0; + + public string PhysicalPath { get; } + + public string Name { get; } + + public DateTimeOffset LastModified { get; } + + public bool IsDirectory => true; + + public VirtualDirectoryFileInfo(string physicalPath, string name, DateTimeOffset lastModified) + { + PhysicalPath = physicalPath; + Name = name; + LastModified = lastModified; + } + + public Stream CreateReadStream() + { + throw new InvalidOperationException(); + } + } +} \ No newline at end of file