Пример #1
0
        private static async Task<IDirectoryInfo> GetSubfolderAsync(IDirectoryInfo parent, string name)
        {
            IDirectoryInfo output = await parent.GetDirectoryAsync(name);
            if (output == null)
            {
                output = await parent.CreateDirectoryAsync(name);
            }

            return output;
        }
Пример #2
0
        public async Task CreateFolderWorks()
        {
            var folderName = "Test";
            var folderOne  = await TestRootFolder.CreateDirectoryAsync(folderName);

            var folders = await TestRootFolder.EnumerateDirectoriesAsync();

            var items = await TestRootFolder.EnumerateItemsAsync();

            Assert.Collection(folders, d => Assert.Equal(folderOne, d));
            Assert.Single(items);

            var item = await TestRootFolder.GetDirectoryAsync(folderName);

            Assert.NotNull(item);
            item = await TestRootFolder.GetDirectoryAsync("notExistent");

            Assert.Null(item);
        }
Пример #3
0
        public async Task <IDirectoryInfo> CreateDirectoryAsync(string name, CancellationToken ct)
        {
            if (FileSystem.EncryptDirectoryName)
            {
                name = EncryptName(name);
            }

            var di = await _directoryInfo.CreateDirectoryAsync(name, ct).ConfigureAwait(false);

            return(new AesDirectoryInfo(FileSystem, di));
        }
Пример #4
0
        public void AddItem(string path, byte[] content = null)
        {
            if (path == null)
            {
                throw new ArgumentNullException(nameof(path));
            }

            bool           isDirectory = path.EndsWith("/") || path.EndsWith("\\");
            var            parts       = path.Split(new[] { '/', '\\' }, StringSplitOptions.RemoveEmptyEntries);
            IDirectoryInfo di          = _root;

            for (int index = 0; index < parts.Length; index++)
            {
                var part = parts[index];
                if (!isDirectory && index == parts.Length - 1)
                {
                    di.CreateFileAsync(part, content ?? Array.Empty <byte>(), CancellationToken.None).Wait();
                }
                else
                {
                    di = di.CreateDirectoryAsync(part, CancellationToken.None).Result;
                }
            }
        }