System.IO.Abstractions icon indicating copy to clipboard operation
System.IO.Abstractions copied to clipboard

GetDrives on mac returns a DriveInfo.Name "/:\\" -- the colon and backslashes is not expected

Open mikeatdjp opened this issue 2 years ago • 1 comments

Describe the bug GetDrives on mac returns a DriveInfo.Name "/:\" -- the colon and backslashes is not expected

To Reproduce Steps to reproduce the behavior: In latest dotnet core on mac, something like this-

            var fs = new MockFileSystem();
            fs.AddFile("/Users/User/Downloads/file.txt", new MockFileData(""));
            var drives = fs.DriveInfo.GetDrives().ToArray();
            Assert.Equal("/", drives[0].Name);

Expected behavior Drive names on mac are usually something like "/", "/Volumes/NO NAME", "/Volumes/AMD" without colons.

Additional context Also, Is there any workaround where I can define the DriveInfos in a MockFileSystem? Or do I have to create Nodes from which MFS derives the DriveInfos?

mikeatdjp avatar Dec 22 '22 19:12 mikeatdjp

Yes, the available drives are derived from the existing files. It seems the logic in https://github.com/TestableIO/System.IO.Abstractions/blob/main/src/TestableIO.System.IO.Abstractions.TestingHelpers/MockDriveInfoFactory.cs#L22 does not work properly for macOS.

fgreinacher avatar Jan 09 '23 14:01 fgreinacher