static void Main(string[] args) { Console.WriteLine("Hello World!"); IFileProvider provider1 = new PhysicalFileProvider(AppDomain.CurrentDomain.BaseDirectory); //var contents = provider1.GetDirectoryContents("/"); //foreach (var item in contents) //{ // Console.WriteLine(item.Name); //} IFileProvider provider2 = new EmbeddedFileProvider(typeof(Program).Assembly); var html = provider2.GetFileInfo("emb.html"); IFileProvider provider = new CompositeFileProvider(provider1, provider2); var contents = provider.GetDirectoryContents("/"); foreach (var item in contents) { Console.WriteLine(item.Name); } Console.ReadKey(); }
static void Main(string[] args) { var phyProvider = new PhysicalFileProvider(AppDomain.CurrentDomain.BaseDirectory); var contents = phyProvider.GetDirectoryContents("/"); foreach (var item in contents) { Console.WriteLine(item.Name); } var embProvider = new EmbeddedFileProvider(typeof(Program).Assembly); var html = embProvider.GetFileInfo("emb.html"); Console.WriteLine($"获取到嵌入式文件:{html.Exists}"); Console.WriteLine("=====↓CompositeFileProvider↓====="); var compositeProvider = new CompositeFileProvider(phyProvider, embProvider); var comContent = compositeProvider.GetDirectoryContents("/"); foreach (var item in comContent) { Console.WriteLine(item.Name); } Console.WriteLine("=====END====="); }
public void GetDirectoryContents_ReturnsCombinaisionOFFiles() { // Arrange var file1 = new MockFileInfo("File1"); var file2 = new MockFileInfo("File2"); var file2Bis = new MockFileInfo("File2"); var file3 = new MockFileInfo("File3"); var provider = new CompositeFileProvider( new MockFileProvider( file1, file2), new MockFileProvider( file2Bis, file3)); // Act var files = provider.GetDirectoryContents(string.Empty); // Assert Assert.NotNull(files); Assert.True(files.Exists); Assert.Collection(files.OrderBy(f => f.Name, StringComparer.Ordinal), file => Assert.Same(file1, file), file => Assert.Same(file2, file), file => Assert.Same(file3, file)); }
static void Main(string[] args) { // 物理文件 IFileProvider provider1 = new PhysicalFileProvider(AppDomain.CurrentDomain.BaseDirectory); var contents = provider1.GetDirectoryContents("/"); //foreach (var item in contents) //{ // // 读取文件流 // //var fileStream = item.CreateReadStream(); // Console.WriteLine(item.Name); //} // 嵌入文件 IFileProvider provider2 = new EmbeddedFileProvider(typeof(Program).Assembly); var html = provider2.GetFileInfo("emb.html"); //var htmlStream = html.CreateReadStream(); //var buffer = new byte[htmlStream.Length]; //htmlStream.ReadAsync(buffer, 0, buffer.Length); //Console.WriteLine(System.Text.Encoding.UTF8.GetString(buffer)); // 组合文件 IFileProvider provider3 = new CompositeFileProvider(provider1, provider2); var contents3 = provider3.GetDirectoryContents("/"); foreach (var item in contents3) { // 读取文件流 //var fileStream = item.CreateReadStream(); Console.WriteLine(item.Name); } Console.ReadLine(); }
static void Main(string[] args) { IFileProvider provider1 = new PhysicalFileProvider(AppDomain.CurrentDomain.BaseDirectory); //var contents = provider1.GetDirectoryContents("/"); #region 项目目录下的内容 //foreach(var item in contents) //{ // //读取文件流 // //var fileStream = item.CreateReadStream(); // Console.WriteLine(item.Name); //} #endregion #region 读取嵌入式文件 IFileProvider provider2 = new EmbeddedFileProvider(typeof(Program).Assembly); //var html = provider2.GetFileInfo("emb.html"); #endregion #region 组合文件提供程序 IFileProvider provider = new CompositeFileProvider(provider1, provider2); var contents = provider.GetDirectoryContents("/"); foreach (var item in contents) { Console.WriteLine(item.Name); } #endregion //Console.ReadKey(); }
public void GetDirectoryContents_ReturnsCombinaitionOFFiles_WhenSomeFileProviderRetunsNoContent() { // Arrange var folderAFile1 = new MockFileInfo("FolderA/File1"); var folderAFile2 = new MockFileInfo("FolderA/File2"); var folderAFile2Bis = new MockFileInfo("FolderA/File2"); var folderBFile1 = new MockFileInfo("FolderB/File1"); var folderBFile2 = new MockFileInfo("FolderB/File2"); var folderCFile3 = new MockFileInfo("FolderC/File3"); var provider = new CompositeFileProvider( new MockFileProvider( folderAFile1, folderAFile2, folderBFile2), new MockFileProvider( folderAFile2Bis, folderBFile1, folderCFile3)); // Act var files = provider.GetDirectoryContents("FolderC/"); // Assert Assert.NotNull(files); Assert.True(files.Exists); Assert.Collection(files.OrderBy(f => f.Name, StringComparer.Ordinal), file => Assert.Equal(folderCFile3, file)); }
static void Main(string[] args) { // 定义一个物理文件的提供程序,把我们当前应用程序的根目录映射出来 IFileProvider provider1 = new PhysicalFileProvider(AppDomain.CurrentDomain.BaseDirectory); //// 获取到这个目录下面的所有内容 //var contents = provider1.GetDirectoryContents("/"); //foreach (var item in contents) //{ // // 读取文件流 // var stream = item.CreateReadStream(); // // 打印文件名 // Console.WriteLine(item.Name); //} IFileProvider provider2 = new EmbeddedFileProvider(typeof(Program).Assembly); var html = provider2.GetFileInfo("emb.html"); // 传入前面的两种文件提供程序到组合提供程序里面,它可以传入多个文件提供程序 IFileProvider provider = new CompositeFileProvider(provider1, provider2); var contents = provider.GetDirectoryContents("/"); foreach (var item in contents) { Console.WriteLine(item.Name); } }
static void Main(string[] args) { //物理文件提供程序:读取物理文件 IFileProvider provider1 = new PhysicalFileProvider(AppDomain.CurrentDomain.BaseDirectory); //var contents = provider1.GetDirectoryContents("/"); //获取目录下所有内容 //foreach (var item in contents) //{ // Console.WriteLine(item.Name); //} //嵌入式文件提供程序:读取嵌入式文件 IFileProvider provider2 = new EmbeddedFileProvider(typeof(Program).Assembly); //var html = provider2.GetFileInfo("emb.html"); //组合文件提供程序 IFileProvider provider = new CompositeFileProvider(provider1, provider2); var contents2 = provider.GetDirectoryContents("/"); foreach (var item in contents2) { Console.WriteLine(item.Name); } Console.ReadLine(); }
public void GetDirectoryContents_ReturnsNonExistingEmptySequence_IfNoFileProviderSpecified() { // Arrange var provider = new CompositeFileProvider(); // Act var files = provider.GetDirectoryContents(string.Empty); // Assert Assert.NotNull(files); Assert.False(files.Exists); Assert.Empty(files); }
public void GetDirectoryContents_ReturnsNonExistingEmptySequence_IfResourcesDoNotExist() { // Arrange var provider = new CompositeFileProvider(); // Act var files = provider.GetDirectoryContents("DoesNotExist"); // Assert Assert.NotNull(files); Assert.False(files.Exists); Assert.Empty(files); }
public void Test1() { //Microsoft.Extensions.FileProviders.Composite.CompositeDirectoryContents // Microsoft.Extensions.FileProviders.NotFoundDirectoryContents //Microsoft.Extensions.FileProviders.Internal.PhysicalDirectoryContents //Microsoft.Extensions.FileProviders.PhysicalFileProvider var sss1 = new EmbeddedFileProvider(typeof(UnitTest1).Assembly); //var sss2 = new ManifestEmbeddedFileProvider(typeof(UnitTest1).Assembly); var sss3 = new PhysicalFileProvider(@"D:\Users\mccj\Source\Repos\FileManager\FileManager\"); var sss4 = new NullFileProvider(); var sss5 = new FileStorage.StoreFileProvider(new FileStorage.Standard.PhysicalFileSystemStore(@"D:\Users\mccj\Source\Repos\FileManager\FileManager\")); var sss6 = new FileStorage.StoreFileProvider(new FileStorage.Standard.FileSystemStore(@"D:\Users\mccj\Source\Repos\FileManager\FileManager\")); var sss7 = new CompositeFileProvider(sss1, sss3, sss4, sss5, sss6); var sdfsd = sss4.Watch(""); var rr = sss4.GetFileInfo(""); var sss11 = sss3.GetFileInfo("aaaa"); var sssd11 = sss5.GetFileInfo("aaaa"); var sssc11 = sss6.GetFileInfo("aaaa"); var sss113 = sss3.GetFileInfo("FileProviderStore"); var sssd113 = sss5.GetFileInfo("FileProviderStore"); var sssd213 = sss6.GetFileInfo("FileProviderStore"); var sss112 = sss3.GetFileInfo("ApplicationBuilderExtensions.cs"); var sssd112 = sss5.GetFileInfo("ApplicationBuilderExtensions.cs"); var sssc112 = sss6.GetFileInfo("ApplicationBuilderExtensions.cs"); var sss = sss3.GetDirectoryContents(""); var sssd = sss5.GetDirectoryContents(""); var sssc = sss6.GetDirectoryContents(""); var sss75 = sss3.GetDirectoryContents("aaaaa"); var sssd5 = sss5.GetDirectoryContents("aaaaa"); var sssdc = sss6.GetDirectoryContents("aaaaa"); var sss76 = sss3.GetDirectoryContents("FileProviderStore"); var sssd6 = sss5.GetDirectoryContents("FileProviderStore"); var sssdcc = sss6.GetDirectoryContents("FileProviderStore"); var sdsdasd = sss7.GetDirectoryContents(""); //sss6.GetDirectoryContents(""); //sss6.GetFileInfo(""); }
public override void Run() { //物理文件 string root = AppDomain.CurrentDomain.BaseDirectory; IFileProvider fileProvider1 = new PhysicalFileProvider(root); //嵌入文件 IFileProvider fileProvider2 = new EmbeddedFileProvider(Assembly.GetExecutingAssembly()); //组合 IFileProvider fileProvider = new CompositeFileProvider(fileProvider1, fileProvider2); IDirectoryContents contents = fileProvider.GetDirectoryContents("/"); foreach (var item in contents) { Stream stream = item.CreateReadStream(); Console.WriteLine(item.Name); } }
static void Main(string[] args) { var physicalFileProvider = new PhysicalFileProvider(Directory.GetCurrentDirectory()); var fileInfos = physicalFileProvider.GetDirectoryContents("/"); foreach (var fileInfo in fileInfos) { Console.WriteLine(fileInfo.Name); } var embeddedFileProvider = new EmbeddedFileProvider(Assembly.GetExecutingAssembly()); var info = embeddedFileProvider.GetFileInfo("emb.html"); Console.WriteLine(info.Name); var compositeFileProvider = new CompositeFileProvider(physicalFileProvider, embeddedFileProvider); var compositeFiles = compositeFileProvider.GetDirectoryContents("/"); foreach (var file in compositeFiles) { Console.WriteLine($"composite:{file.Name}"); } Console.Read(); }
static void Main(string[] args) { IFileProvider pysicalProvider = new PhysicalFileProvider(AppDomain.CurrentDomain.BaseDirectory); //var contents = pysicalProvider.GetDirectoryContents("/"); //foreach (var item in contents) //{ // Console.WriteLine(item.Name); //} IFileProvider embeddedProvider = new EmbeddedFileProvider(typeof(Program).Assembly); var html = embeddedProvider.GetFileInfo("test.html"); var compositeProvider = new CompositeFileProvider(pysicalProvider, embeddedProvider); var allContents = compositeProvider.GetDirectoryContents("/"); foreach (var item in allContents) { Console.WriteLine(item.Name); } Console.ReadKey(); }
static void Main(string[] args) { //1 获取物理文件 IFileProvider provider1 = new PhysicalFileProvider(AppDomain.CurrentDomain.BaseDirectory); var contentsp = provider1.GetDirectoryContents("/"); foreach (var item in contentsp) { //var stream = item.CreateReadStream(); Console.WriteLine(item.Name); } //2 获取编译时构建到应用程序集中的文件 IFileProvider provider2 = new EmbeddedFileProvider(typeof(Program).Assembly); //var dd = provider2.GetDirectoryContents("/"); //2 将emb.html设置为嵌入的资源,而不是应用文件 //var html = provider2.GetFileInfo("emb.html"); //3 获取组合的各种文件 IFileProvider provider = new CompositeFileProvider(provider1, provider2); var contents = provider.GetDirectoryContents("/"); foreach (var item in contents) { Console.WriteLine(item.Name); } //Console.ReadKey(); }
public IDirectoryContents GetDirectoryContents(string subpath) => _fileProvider.GetDirectoryContents(subpath);