Example #1
0
        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();
        }
Example #2
0
        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=====");
        }
Example #3
0
        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));
        }
Example #4
0
        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();
        }
Example #5
0
        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();
        }
Example #6
0
        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));
        }
Example #7
0
        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);
            }
        }
Example #8
0
        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 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);
        }
Example #12
0
        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("");
        }
Example #13
0
        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);
            }
        }
Example #14
0
        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();
        }
Example #15
0
        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();
        }
Example #17
0
 public IDirectoryContents GetDirectoryContents(string subpath)
 => _fileProvider.GetDirectoryContents(subpath);
        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 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));
        }
        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));
        }