peteraritchie / LongPath

drop-in library to support long paths in .NET
GNU Lesser General Public License v3.0
112 stars 43 forks source link

Mono support #60

Closed Cazzar closed 7 years ago

Cazzar commented 7 years ago

This PR adds support for using LongPath in a cross-platform, or mono style application, as with the native calls, they do not exist on the linux based OSes, I have just defaulted this to use System.IO, wrapping it in the types of LongPath.

Notes: DirectoryInfo.GetFileSystemInfos(string, SearchOption) is hackily implemented on .net 2.0 as this is not actually a supported .net 2 function. see here Within the PR, the tab spacing is inconsistent, namely because, from looking at the current code base, it has been almost impossible to determine the wanted code style.

Cazzar commented 7 years ago

Tests seem to be failing, though I have also tested against my fork as well as master, same tests seem to fail.

peteraritchie commented 7 years ago

I don't see anything obvious why the tests would be failing. It looks like UNC paths might be falling through to the Framework classes? Are you sure IsRunningOnMono() is returning false correctly? i.e. add a unit test for that.

Also, there should be unit tests covering each of the mono cases (e.g. have the ability to inject the mono check so you can make it true even on Windows .NET.

Cazzar commented 7 years ago

Running it on my machine seems to be returning the testing fine (the tests were modified to respect the fact I don't use C:\ for my git), and Common.IsRunningOnMono() is from the mono technical document

peteraritchie commented 7 years ago

I'll try to look into this more in the next couple of days.