CitizenMatt.ReSharper.ExtensionManager.Tests.Implementation.FakeFileSystem.DeleteDirectory C# (CSharp) Method

DeleteDirectory() public method

public DeleteDirectory ( string path, bool recursive ) : void
path string
recursive bool
return void
        public void DeleteDirectory(string path, bool recursive)
        {
            // Can't be bothered implementing non-recursive delete
            Assert.True(recursive);

            if (path[path.Length - 1] != Path.DirectorySeparatorChar)
                path = path + Path.DirectorySeparatorChar;

            var toRemove = from file in Files
                           where file.StartsWith(path, StringComparison.InvariantCultureIgnoreCase)
                           select file;
            foreach (var file in toRemove.ToList())
                Files.Remove(file);
        }

Usage Example

        public void ShouldDeleteOnlyFilesInDirectory()
        {
            var fileSystem = new FakeFileSystem(@"C:\temp\repo");
            fileSystem.Files.Add("Matt\\file1.txt");
            fileSystem.Files.Add("Matt\\file2.txt");
            fileSystem.Files.Add("Matt\\file3.txt");
            fileSystem.Files.Add("Matt2\\file3.txt");

            fileSystem.DeleteDirectory("Matt", true);

            Assert.Equal(1, fileSystem.Files.Count);
            Assert.Equal("Matt2\\file3.txt", fileSystem.Files.First());
        }