Skip to content

Instantly share code, notes, and snippets.

@rfht
Created June 25, 2019 16:02
Show Gist options
  • Save rfht/315409de1a0d2154a709d9a9288783b2 to your computer and use it in GitHub Desktop.
Save rfht/315409de1a0d2154a709d9a9288783b2 to your computer and use it in GitHub Desktop.
Ubuntu mono Directory.GetFiles() / Path.GetFullPath() bug
thfr@thfr-MS-7B79:~/.steam/steam/steamapps/common/Dead Pixels II$ uname -a
Linux thfr-MS-7B79 4.15.0-52-generic #56-Ubuntu SMP Tue Jun 4 22:49:08 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
thfr@thfr-MS-7B79:~/.steam/steam/steamapps/common/Dead Pixels II$ pwd
/home/thfr/.steam/steam/steamapps/common/Dead Pixels II
thfr@thfr-MS-7B79:~/.steam/steam/steamapps/common/Dead Pixels II$ csharp
Mono C# Shell, type "help;" for help
Enter statements below.
csharp> using System.IO;
csharp> Directory.GetFiles("Content/data/fonts");
{ "Content/data/fonts/animatedFont1.xml", "Content/data/fonts/animatedFont2.xml", "Content/data/fonts/animatedFont3.xml", "Content/data/fonts/bigMoney.xml", "Content/data/fonts/bigbetterblock.xml", "Content/data/fonts/bigbetterblockhighlight1.xml", "Content/data/fonts/bigbetterblockhighlight2.xml", "Content/data/fonts/bigbetterblockhighlight3.xml", "Content/data/fonts/bigblock.xml", "Content/data/fonts/bigblockrev.xml", "Content/data/fonts/blockcount.xml", "Content/data/fonts/money.xml", "Content/data/fonts/narrow.xml", "Content/data/fonts/narrow2.xml", "Content/data/fonts/newsign.xml", "Content/data/fonts/segment.xml", "Content/data/fonts/sign.xml", "Content/data/fonts/signGraffiti.xml", "Content/data/fonts/signText.xml", "Content/data/fonts/smallSegment16.xml", "Content/data/fonts/smallsegment.xml", "Content/data/fonts/squarty.xml", "Content/data/fonts/squartyoutline.xml", "Content/data/fonts/squartyrevoutline.xml", "Content/data/fonts/tinytext.xml", "Content/data/fonts/tinytextOutline.xml", "Content/data/fonts/vcrfont.xml", "Content/data/fonts/vcrmini.xml", "Content/data/fonts/vcrminirev.xml" }
csharp> Directory.GetFiles("Content/data/fonts//");
System.ArgumentException: Second path fragment must not be a drive or UNC name.
Parameter name: path2
at System.IO.Path.InternalCombine (System.String path1, System.String path2) <0x7f318c2edb30 + 0x00165> in <6649516e5b3542319fb262b421af0adb>:0
at System.IO.FileSystemEnumerableIterator`1[TSource].CommonInit () <0x7f318c2c78f0 + 0x00046> in <6649516e5b3542319fb262b421af0adb>:0
at System.IO.FileSystemEnumerableIterator`1[TSource]..ctor (System.String path, System.String originalUserPath, System.String searchPattern, System.IO.SearchOption searchOption, System.IO.SearchResultHandler`1[TSource] resultHandler, System.Boolean checkHost) <0x7f318c2c7670 + 0x00270> in <6649516e5b3542319fb262b421af0adb>:0
at System.IO.FileSystemEnumerableFactory.CreateFileNameIterator (System.String path, System.String originalUserPath, System.String searchPattern, System.Boolean includeFiles, System.Boolean includeDirs, System.IO.SearchOption searchOption, System.Boolean checkHost) <0x7f318c2c7210 + 0x00086> in <6649516e5b3542319fb262b421af0adb>:0
at System.IO.Directory.InternalGetFileDirectoryNames (System.String path, System.String userPathOriginal, System.String searchPattern, System.Boolean includeFiles, System.Boolean includeDirs, System.IO.SearchOption searchOption, System.Boolean checkHost) <0x7f318c2c4940 + 0x00050> in <6649516e5b3542319fb262b421af0adb>:0
at System.IO.Directory.InternalGetFiles (System.String path, System.String searchPattern, System.IO.SearchOption searchOption) <0x7f318c2c44f0 + 0x00042> in <6649516e5b3542319fb262b421af0adb>:0
at System.IO.Directory.GetFiles (System.String path) <0x7f318c2c4390 + 0x0002b> in <6649516e5b3542319fb262b421af0adb>:0
at <InteractiveExpressionClass>.Host (System.Object& $retval) [0x00000] in <12fde813588e4cab81c59b2e68b031d8>:0
at Mono.CSharp.Evaluator.Evaluate (System.String input, System.Object& result, System.Boolean& result_set) [0x00038] in <5cd0896827594f1dabd88f82ded4448a>:0
at Mono.CSharpShell.Evaluate (System.String input) [0x00000] in <8cd00f97d4e04d8c9bc48fb0087c1c16>:0
csharp> Directory.GetFiles("/home/thfr/.steam/steam/steamapps/common/Dead Pixels II/Content/data/fonts//");
{ "/home/thfr/.steam/steam/steamapps/common/Dead Pixels II/Content/data/fonts//animatedFont1.xml", "/home/thfr/.steam/steam/steamapps/common/Dead Pixels II/Content/data/fonts//animatedFont2.xml", "/home/thfr/.steam/steam/steamapps/common/Dead Pixels II/Content/data/fonts//animatedFont3.xml", "/home/thfr/.steam/steam/steamapps/common/Dead Pixels II/Content/data/fonts//bigMoney.xml", "/home/thfr/.steam/steam/steamapps/common/Dead Pixels II/Content/data/fonts//bigbetterblock.xml", "/home/thfr/.steam/steam/steamapps/common/Dead Pixels II/Content/data/fonts//bigbetterblockhighlight1.xml", "/home/thfr/.steam/steam/steamapps/common/Dead Pixels II/Content/data/fonts//bigbetterblockhighlight2.xml", "/home/thfr/.steam/steam/steamapps/common/Dead Pixels II/Content/data/fonts//bigbetterblockhighlight3.xml", "/home/thfr/.steam/steam/steamapps/common/Dead Pixels II/Content/data/fonts//bigblock.xml", "/home/thfr/.steam/steam/steamapps/common/Dead Pixels II/Content/data/fonts//bigblockrev.xml", "/home/thfr/.steam/steam/s
teamapps/common/Dead Pixels II/Content/data/fonts//blockcount.xml", "/home/thfr/.steam/steam/steamapps/common/Dead Pixels II/Content/data/fonts//money.xml", "/home/thfr/.steam/steam/steamapps/common/Dead Pixels II/Content/data/fonts//narrow.xml", "/home/thfr/.steam/steam/steamapps/common/Dead Pixels II/Content/data/fonts//narrow2.xml", "/home/thfr/.steam/steam/steamapps/common/Dead Pixels II/Content/data/fonts//newsign.xml", "/home/thfr/.steam/steam/steamapps/common/Dead Pixels II/Content/data/fonts//segment.xml", "/home/thfr/.steam/steam/steamapps/common/Dead Pixels II/Content/data/fonts//sign.xml", "/home/thfr/.steam/steam/steamapps/common/Dead Pixels II/Content/data/fonts//signGraffiti.xml", "/home/thfr/.steam/steam/steamapps/common/Dead Pixels II/Content/data/fonts//signText.xml", "/home/thfr/.steam/steam/steamapps/common/Dead Pixels II/Content/data/fonts//smallSegment16.xml", "/home/thfr/.steam/steam/steamapps/common/Dead Pixels II/Content/data/fonts//smallsegment.xml", "/home/thfr/.steam/steam/steamapps/common/Dead Pixels II/Content/data/fonts//squarty.xml", "/home/thfr/.steam/steam/steamapps/common/Dead Pixels II/Content/data/fonts//squartyoutline.xml", "/home/thfr/.steam/steam/steamapps/common/Dead Pixels II/Content/data/fonts//squartyrevoutline.xml", "/home/thfr/.steam/steam/steamapps/common/Dead Pixels II/Content/data/fonts//tinytext.xml", "/home/thfr/.steam/steam/steamapps/common/Dead Pixels II/Content/data/fonts//tinytextOutline.xml", "/home/thfr/.steam/steam/steamapps/common/Dead Pixels II/Content/data/fonts//vcrfont.xml", "/home/thfr/.steam/steam/steamapps/common/Dead Pixels II/Content/data/
fonts//vcrmini.xml", "/home/thfr/.steam/steam/steamapps/common/Dead Pixels II/Content/data/fonts//vcrminirev.xml" }
csharp>
csharp> Directory.GetFiles("Content//data//fonts//");
System.IO.DirectoryNotFoundException: Could not find a part of the path '/home/thfr/.steam/steam/steamapps/common/Dead Pixels II/Content/data/fonts'.
at System.IO.__Error.WinIOError (System.Int32 errorCode, System.String maybeFullPath) <0x7f318c2bee60 + 0x003ad> in <6649516e5b3542319fb262b421af0adb>:0
at System.IO.FileSystemEnumerableIterator`1[TSource].HandleError (System.Int32 hr, System.String path) <0x7f318c2c8380 + 0x0003a> in <6649516e5b3542319fb262b421af0adb>:0
at System.IO.FileSystemEnumerableIterator`1[TSource].CommonInit () <0x7f318c2c78f0 + 0x000fe> in <6649516e5b3542319fb262b421af0adb>:0
at System.IO.FileSystemEnumerableIterator`1[TSource]..ctor (System.String path, System.String originalUserPath, System.String searchPattern, System.IO.SearchOption searchOption, System.IO.SearchResultHandler`1[TSource] resultHandler, System.Boolean checkHost) <0x7f318c2c7670 + 0x00270> in <6649516e5b3542319fb262b421af0adb>:0
at System.IO.FileSystemEnumerableFactory.CreateFileNameIterator (System.String path, System.String originalUserPath, System.String searchPattern, System.Boolean includeFiles, System.Boolean includeDirs, System.IO.SearchOption searchOption, System.Boolean checkHost) <0x7f318c2c7210 + 0x00086> in <6649516e5b3542319fb262b421af0adb>:0
at System.IO.Directory.InternalGetFileDirectoryNames (System.String path, System.String userPathOriginal, System.String searchPattern, System.Boolean includeFiles, System.Boolean includeDirs, System.IO.SearchOption searchOption, System.Boolean checkHost) <0x7f318c2c4940 + 0x00050> in <6649516e5b3542319fb262b421af0adb>:0
at System.IO.Directory.InternalGetFiles (System.String path, System.String searchPattern, System.IO.SearchOption searchOption) <0x7f318c2c44f0 + 0x00042> in <6649516e5b3542319fb262b421af0adb>:0
at System.IO.Directory.GetFiles (System.String path) <0x7f318c2c4390 + 0x0002b> in <6649516e5b3542319fb262b421af0adb>:0
at <InteractiveExpressionClass>.Host (System.Object& $retval) [0x00000] in <e79ed41e54044bc8892ba9ff6d29264f>:0
at Mono.CSharp.Evaluator.Evaluate (System.String input, System.Object& result, System.Boolean& result_set) [0x00038] in <5cd0896827594f1dabd88f82ded4448a>:0
at Mono.CSharpShell.Evaluate (System.String input) [0x00000] in <8cd00f97d4e04d8c9bc48fb0087c1c16>:0
csharp> Directory.GetFiles("/home/thfr/.steam/steam/steamapps/common/Dead Pixels II/Content//data//fonts//");
{ "/home/thfr/.steam/steam/steamapps/common/Dead Pixels II/Content//data//fonts//animatedFont1.xml", "/home/thfr/.steam/steam/steamapps/common/Dead Pixels II/Content//data//fonts//animatedFont2.xml", "/home/thfr/.steam/steam/steamapps/common/Dead Pixels II/Content//data//fonts//animatedFont3.xml", "/home/thfr/.steam/steam/steamapps/common/Dead Pixels II/Content//data//fonts//bigMoney.xml", "/home/thfr/.steam/steam/steamapps/common/Dead Pixels II/Content//data//fonts//bigbetterblock.xml", "/home/thfr/.steam/steam/steamapps/common/Dead Pixels II/Content//data//fonts//bigbetterblockhighlight1.xml", "/home/thfr/.steam/steam/steamapps/common/Dead Pixels II/Content//data//fonts//bigbetterblockhighlight2.xml", "/home/thfr/.steam/steam/steamapps/common/Dead Pixels II/Content//data//fonts//bigbetterblockhighlight3
.xml", "/home/thfr/.steam/steam/steamapps/common/Dead Pixels II/Content//data//fonts//bigblock.xml", "/home/thfr/.steam/steam/steamapps/common/Dead Pixels II/Content//data//fonts//bigblockrev.xml", "/home/thfr/.steam/steam/steamapps/common/Dead Pixels II/Content//data//fonts//blockcount.xml", "/home/thfr/.steam/steam/steamapps/common/Dead Pixels II/Content//data//fonts//money.xml", "/home/thfr/.steam/stea
m/steamapps/common/Dead Pixels II/Content//data//fonts//narrow.xml", "/home/thfr/.steam/steam/steamapps/common/Dead Pixels II/Content//data//fonts//narrow2.xml", "/home/thfr/.steam/steam/steamapps/common/Dead Pixels II/Content//data//fonts//newsign.xml", "/home/thfr/.steam/steam/steamapps/common/Dead Pixels II/Content//data//fonts//segment.xml", "/home/thfr/.steam/steam/steamapps/common/Dead Pixels II/Content//data//fonts//sign.xml", "/home/thfr/.steam/steam/steamapps/common/Dead Pixels II/Content//data//fonts//signGraffiti.xml", "/home/thfr/.steam/steam/steamapps/common/Dead Pixels II/Content//data//fonts//signText.xml", "/home/thfr/.steam/steam/steamapps/common/Dead Pixels II/Content//data//fonts//smallSegment16.xml", "/home/thfr/.steam/steam/steamapps/common/Dead Pixels II/Content//data//fonts//smallsegment.xml", "/home/thfr/.steam/steam/steamapps/common/Dead Pixels II/Content//data//fonts//squarty.xml", "/home/thfr/.steam/steam/steamapps/common/Dead Pixels II/Content//data//fonts//squartyoutline.xml", "/home/thfr/.steam/steam/steamapps/common/Dead Pixels II/Content//data//fonts//squartyrevoutline.xml", "/home/thfr/.steam/steam/steamapps/common/Dead Pixels II/Content//data//fonts//tinytext.xml", "/home
/thfr/.steam/steam/steamapps/common/Dead Pixels II/Content//data//fonts//tinytextOutline.xml", "/home/thfr/.steam/steam/steamapps/common/Dead Pixels II/Content//data//fonts//vcrfont.xml", "/home/thfr/.ste
am/steam/steamapps/common/Dead Pixels II/Content//data//fonts//vcrmini.xml", "/home/thfr/.steam/steam/steamapps/common/Dead Pixels II/Content//data//fonts//vcrminirev.xml" }
csharp>
csharp> Path.GetFullPath("/home/thfr/.steam/steam/steamapps/common/Dead Pixels II/Content//data//fonts//");
"/home/thfr/.steam/steam/steamapps/common/Dead Pixels II/Content/data/fonts/"
csharp> Path.GetFullPath("Content//data//fonts//");
"/home/thfr/.steam/steam/steamapps/common/Dead Pixels II/Content//data//fonts//"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment