Skip to content

Latest commit

 

History

History
64 lines (49 loc) · 1.13 KB

File metadata and controls

64 lines (49 loc) · 1.13 KB

IO0007. Replace DirectoryInfo class with IFileSystem.DirectoryInfo for improved testability

Topic Value
Id IO0007
Severity Warning
Enabled True
Category System.IO.Abstractions

Description

Replace DirectoryInfo class with IFileSystem.DirectoryInfo for improved testability

Code with Diagnostic

using System.IO.Abstractions;

namespace SomeNameSpace
{
	public class WithOutFileSystem
	{
		private readonly IFileSystem _fileSystem;

		public WithOutFileSystem(IFileSystem fileSystem)
		{
			_fileSystem = fileSystem;
		}

		public void SomeMethod()
		{
			const string filePath = "C:\\temp.txt";

			DirectoryInfo dirInfo = new DirectoryInfo(filePath);
		}
	}
}

Code with Fix

using System.IO.Abstractions;

namespace SomeNameSpace
{
	public class WithOutFileSystem
	{
		private readonly IFileSystem _fileSystem;

		public WithOutFileSystem(IFileSystem fileSystem)
		{
			_fileSystem = fileSystem;
		}

		public void SomeMethod()
		{
			const string filePath = "C:\\temp.txt";

			DirectoryInfo dirInfo = _fileSystem.DirectoryInfo.FromDirectoryName(filePath);
		}
	}
}