@@ -308,7 +308,7 @@ public bool Exists(NPath append)
308
308
public bool DirectoryExists ( )
309
309
{
310
310
ThrowIfNotInitialized ( ) ;
311
- return FileSystem . DirectoryExists ( ToProcessDirectory ( ) . ToString ( ) ) ;
311
+ return FSWrapper . DirectoryExists ( this ) ;
312
312
}
313
313
314
314
public bool DirectoryExists ( string append )
@@ -324,13 +324,13 @@ public bool DirectoryExists(NPath append)
324
324
ThrowIfNotInitialized ( ) ;
325
325
if ( ! append . IsInitialized )
326
326
return DirectoryExists ( ) ;
327
- return FileSystem . DirectoryExists ( Combine ( append ) . ToProcessDirectory ( ) . ToString ( ) ) ;
327
+ return FSWrapper . DirectoryExists ( Combine ( append ) ) ;
328
328
}
329
329
330
330
public bool FileExists ( )
331
331
{
332
332
ThrowIfNotInitialized ( ) ;
333
- return FileSystem . FileExists ( ToProcessDirectory ( ) . ToString ( ) ) ;
333
+ return FSWrapper . FileExists ( this ) ;
334
334
}
335
335
336
336
public bool FileExists ( string append )
@@ -346,7 +346,7 @@ public bool FileExists(NPath append)
346
346
ThrowIfNotInitialized ( ) ;
347
347
if ( ! append . IsInitialized )
348
348
return FileExists ( ) ;
349
- return FileSystem . FileExists ( Combine ( append ) . ToProcessDirectory ( ) . ToString ( ) ) ;
349
+ return FSWrapper . FileExists ( Combine ( append ) ) ;
350
350
}
351
351
352
352
public string ExtensionWithDot
@@ -535,7 +535,7 @@ public bool IsRoot
535
535
536
536
public IEnumerable < NPath > Files ( string filter , bool recurse = false )
537
537
{
538
- return FileSystem . GetFiles ( ToProcessDirectory ( ) . ToString ( ) , filter , recurse ? SearchOption . AllDirectories : SearchOption . TopDirectoryOnly ) . Select ( s => new NPath ( s ) ) ;
538
+ return FSWrapper . GetFiles ( this , filter , recurse ? SearchOption . AllDirectories : SearchOption . TopDirectoryOnly ) . Select ( s => new NPath ( s ) ) ;
539
539
}
540
540
541
541
public IEnumerable < NPath > Files ( bool recurse = false )
@@ -555,7 +555,7 @@ public IEnumerable<NPath> Contents(bool recurse = false)
555
555
556
556
public IEnumerable < NPath > Directories ( string filter , bool recurse = false )
557
557
{
558
- return FileSystem . GetDirectories ( ToProcessDirectory ( ) . ToString ( ) , filter , recurse ? SearchOption . AllDirectories : SearchOption . TopDirectoryOnly ) . Select ( s => new NPath ( s ) ) ;
558
+ return FSWrapper . GetDirectories ( this , filter , recurse ? SearchOption . AllDirectories : SearchOption . TopDirectoryOnly ) . Select ( s => new NPath ( s ) ) ;
559
559
}
560
560
561
561
public IEnumerable < NPath > Directories ( bool recurse = false )
@@ -572,7 +572,7 @@ public NPath CreateFile()
572
572
ThrowIfRelative ( ) ;
573
573
ThrowIfRoot ( ) ;
574
574
EnsureParentDirectoryExists ( ) ;
575
- FileSystem . WriteAllBytes ( ToProcessDirectory ( ) . ToString ( ) , new byte [ 0 ] ) ;
575
+ FSWrapper . WriteAllBytes ( this , new byte [ 0 ] ) ;
576
576
return this ;
577
577
}
578
578
@@ -597,7 +597,7 @@ public NPath CreateDirectory()
597
597
if ( IsRoot )
598
598
throw new NotSupportedException ( "CreateDirectory is not supported on a root level directory because it would be dangerous:" + ToString ( ) ) ;
599
599
600
- FileSystem . DirectoryCreate ( ToProcessDirectory ( ) . ToString ( ) ) ;
600
+ FSWrapper . DirectoryCreate ( this ) ;
601
601
return this ;
602
602
}
603
603
@@ -666,7 +666,7 @@ NPath CopyWithDeterminedDestination(NPath absoluteDestination, Func<NPath, bool>
666
666
667
667
absoluteDestination . EnsureParentDirectoryExists ( ) ;
668
668
669
- FileSystem . FileCopy ( ToProcessDirectory ( ) . ToString ( ) , absoluteDestination . ToString ( ) , true ) ;
669
+ FSWrapper . FileCopy ( this , absoluteDestination , true ) ;
670
670
return absoluteDestination ;
671
671
}
672
672
@@ -698,11 +698,11 @@ public void Delete(DeleteMode deleteMode = DeleteMode.Normal)
698
698
{
699
699
if ( isFile )
700
700
{
701
- FileSystem . FileDelete ( ToProcessDirectory ( ) . ToString ( ) ) ;
701
+ FSWrapper . FileDelete ( this ) ;
702
702
}
703
703
else
704
704
{
705
- FileSystem . DirectoryDelete ( ToProcessDirectory ( ) . ToString ( ) , true ) ;
705
+ FSWrapper . DirectoryDelete ( this , true ) ;
706
706
}
707
707
}
708
708
catch ( IOException )
@@ -797,13 +797,13 @@ public NPath Move(NPath dest)
797
797
{
798
798
dest . DeleteIfExists ( ) ;
799
799
dest . EnsureParentDirectoryExists ( ) ;
800
- FileSystem . FileMove ( ToProcessDirectory ( ) . ToString ( ) , dest . ToProcessDirectory ( ) . ToString ( ) ) ;
800
+ FSWrapper . FileMove ( this , dest ) ;
801
801
return dest ;
802
802
}
803
803
804
804
if ( DirectoryExists ( ) )
805
805
{
806
- FileSystem . DirectoryMove ( ToProcessDirectory ( ) . ToString ( ) , dest . ToProcessDirectory ( ) . ToString ( ) ) ;
806
+ FSWrapper . DirectoryMove ( this , dest ) ;
807
807
return dest ;
808
808
}
809
809
@@ -814,64 +814,64 @@ public NPath WriteAllText(string contents)
814
814
{
815
815
ThrowIfNotInitialized ( ) ;
816
816
EnsureParentDirectoryExists ( ) ;
817
- FileSystem . WriteAllText ( ToProcessDirectory ( ) . ToString ( ) , contents ) ;
817
+ FSWrapper . WriteAllText ( this , contents ) ;
818
818
return this ;
819
819
}
820
820
821
821
public string ReadAllText ( )
822
822
{
823
823
ThrowIfNotInitialized ( ) ;
824
- return FileSystem . ReadAllText ( ToProcessDirectory ( ) . ToString ( ) ) ;
824
+ return FSWrapper . ReadAllText ( this ) ;
825
825
}
826
826
827
827
public NPath WriteAllText ( string contents , Encoding encoding )
828
828
{
829
829
ThrowIfNotInitialized ( ) ;
830
830
EnsureParentDirectoryExists ( ) ;
831
- FileSystem . WriteAllText ( ToProcessDirectory ( ) . ToString ( ) , contents , encoding ) ;
831
+ FSWrapper . WriteAllText ( this , contents , encoding ) ;
832
832
return this ;
833
833
}
834
834
835
835
public string ReadAllText ( Encoding encoding )
836
836
{
837
837
ThrowIfNotInitialized ( ) ;
838
- return FileSystem . ReadAllText ( ToProcessDirectory ( ) . ToString ( ) , encoding ) ;
838
+ return FSWrapper . ReadAllText ( this , encoding ) ;
839
839
}
840
840
841
841
public NPath WriteLines ( string [ ] contents )
842
842
{
843
843
ThrowIfNotInitialized ( ) ;
844
844
EnsureParentDirectoryExists ( ) ;
845
- FileSystem . WriteLines ( ToProcessDirectory ( ) . ToString ( ) , contents ) ;
845
+ FSWrapper . WriteLines ( this , contents ) ;
846
846
return this ;
847
847
}
848
848
849
849
public NPath WriteAllLines ( string [ ] contents )
850
850
{
851
851
ThrowIfNotInitialized ( ) ;
852
852
EnsureParentDirectoryExists ( ) ;
853
- FileSystem . WriteAllLines ( ToProcessDirectory ( ) . ToString ( ) , contents ) ;
853
+ FSWrapper . WriteAllLines ( this , contents ) ;
854
854
return this ;
855
855
}
856
856
857
857
public string [ ] ReadAllLines ( )
858
858
{
859
859
ThrowIfNotInitialized ( ) ;
860
- return FileSystem . ReadAllLines ( ToProcessDirectory ( ) . ToString ( ) ) ;
860
+ return FSWrapper . ReadAllLines ( this ) ;
861
861
}
862
862
863
863
public NPath WriteAllBytes ( byte [ ] contents )
864
864
{
865
865
ThrowIfNotInitialized ( ) ;
866
866
EnsureParentDirectoryExists ( ) ;
867
- FileSystem . WriteAllBytes ( ToProcessDirectory ( ) . ToString ( ) , contents ) ;
867
+ FSWrapper . WriteAllBytes ( this , contents ) ;
868
868
return this ;
869
869
}
870
870
871
871
public byte [ ] ReadAllBytes ( )
872
872
{
873
873
ThrowIfNotInitialized ( ) ;
874
- return FileSystem . ReadAllBytes ( ToProcessDirectory ( ) . ToString ( ) ) ;
874
+ return FSWrapper . ReadAllBytes ( this ) ;
875
875
}
876
876
877
877
@@ -1100,18 +1100,21 @@ public static IFileSystem FileSystem
1100
1100
{
1101
1101
if ( _fileSystem == null )
1102
1102
#if UNITY_4 || UNITY_5 || UNITY_5_3_OR_NEWER
1103
- _fileSystem = new FileSystem ( UnityEngine . Application . dataPath ) ;
1103
+ FileSystem = new FileSystem ( UnityEngine . Application . dataPath ) ;
1104
1104
#else
1105
- _fileSystem = new FileSystem ( Directory . GetCurrentDirectory ( ) ) ;
1105
+ FileSystem = new FileSystem ( Directory . GetCurrentDirectory ( ) ) ;
1106
1106
#endif
1107
1107
return _fileSystem ;
1108
1108
}
1109
1109
set
1110
1110
{
1111
1111
_fileSystem = value ;
1112
+ FSWrapper = new FSWrapper ( value ) ;
1112
1113
}
1113
1114
}
1114
1115
1116
+ private static FSWrapper FSWrapper { get ; set ; }
1117
+
1115
1118
private static bool ? _isUnix ;
1116
1119
internal static bool IsUnix
1117
1120
{
@@ -1228,4 +1231,122 @@ public enum DeleteMode
1228
1231
Normal ,
1229
1232
Soft
1230
1233
}
1234
+
1235
+
1236
+ class FSWrapper
1237
+ {
1238
+ private readonly IFileSystem fileSystem ;
1239
+
1240
+ public FSWrapper ( IFileSystem fileSystem )
1241
+ {
1242
+ this . fileSystem = fileSystem ;
1243
+ }
1244
+
1245
+ public void DirectoryCreate ( NPath path )
1246
+ {
1247
+ fileSystem . DirectoryCreate ( path . ToProcessDirectory ( ) . ToString ( ) ) ;
1248
+ }
1249
+
1250
+ public void DirectoryDelete ( NPath path , bool recursive )
1251
+ {
1252
+ fileSystem . DirectoryDelete ( path . ToProcessDirectory ( ) . ToString ( ) , recursive ) ;
1253
+ }
1254
+
1255
+ public bool DirectoryExists ( NPath path )
1256
+ {
1257
+ return fileSystem . DirectoryExists ( path . ToProcessDirectory ( ) . ToString ( ) ) ;
1258
+ }
1259
+ public void DirectoryMove ( NPath from , NPath to )
1260
+ {
1261
+ fileSystem . DirectoryMove ( from . ToProcessDirectory ( ) . ToString ( ) , to . ToProcessDirectory ( ) . ToString ( ) ) ;
1262
+ }
1263
+ public bool ExistingPathIsDirectory ( NPath path )
1264
+ {
1265
+ return fileSystem . ExistingPathIsDirectory ( path . ToProcessDirectory ( ) . ToString ( ) ) ;
1266
+ }
1267
+ public void FileCopy ( NPath from , NPath to , bool overwrite )
1268
+ {
1269
+ fileSystem . FileCopy ( from . ToProcessDirectory ( ) . ToString ( ) , to . ToProcessDirectory ( ) . ToString ( ) , overwrite ) ;
1270
+ }
1271
+ public void FileDelete ( NPath path )
1272
+ {
1273
+ fileSystem . FileDelete ( path . ToProcessDirectory ( ) . ToString ( ) ) ;
1274
+ }
1275
+ public bool FileExists ( NPath path )
1276
+ {
1277
+ return fileSystem . FileExists ( path . ToProcessDirectory ( ) . ToString ( ) ) ;
1278
+ }
1279
+ public void FileMove ( NPath from , NPath to )
1280
+ {
1281
+ fileSystem . FileMove ( from . ToProcessDirectory ( ) . ToString ( ) , to . ToProcessDirectory ( ) . ToString ( ) ) ;
1282
+ }
1283
+ public IEnumerable < string > GetDirectories ( NPath path )
1284
+ {
1285
+ return fileSystem . GetDirectories ( path . ToProcessDirectory ( ) . ToString ( ) ) ;
1286
+ }
1287
+ public IEnumerable < string > GetDirectories ( NPath path , string pattern )
1288
+ {
1289
+ return fileSystem . GetDirectories ( path . ToProcessDirectory ( ) . ToString ( ) , pattern ) ;
1290
+ }
1291
+ public IEnumerable < string > GetDirectories ( NPath path , string pattern , SearchOption searchOption )
1292
+ {
1293
+ return fileSystem . GetDirectories ( path . ToProcessDirectory ( ) . ToString ( ) , pattern , searchOption ) ;
1294
+ }
1295
+ public IEnumerable < string > GetFiles ( NPath path )
1296
+ {
1297
+ return fileSystem . GetFiles ( path . ToProcessDirectory ( ) . ToString ( ) ) ;
1298
+ }
1299
+ public IEnumerable < string > GetFiles ( NPath path , string pattern )
1300
+ {
1301
+ return fileSystem . GetFiles ( path . ToProcessDirectory ( ) . ToString ( ) , pattern ) ;
1302
+ }
1303
+ public IEnumerable < string > GetFiles ( NPath path , string pattern , SearchOption searchOption )
1304
+ {
1305
+ return fileSystem . GetFiles ( path . ToProcessDirectory ( ) . ToString ( ) , pattern , searchOption ) ;
1306
+ }
1307
+ public Stream OpenRead ( NPath path )
1308
+ {
1309
+ return fileSystem . OpenRead ( path . ToProcessDirectory ( ) . ToString ( ) ) ;
1310
+ }
1311
+ public Stream OpenWrite ( NPath path , FileMode mode )
1312
+ {
1313
+ return fileSystem . OpenWrite ( path . ToProcessDirectory ( ) . ToString ( ) , mode ) ;
1314
+ }
1315
+ public byte [ ] ReadAllBytes ( NPath path )
1316
+ {
1317
+ return fileSystem . ReadAllBytes ( path . ToProcessDirectory ( ) . ToString ( ) ) ;
1318
+ }
1319
+ public string [ ] ReadAllLines ( NPath path )
1320
+ {
1321
+ return fileSystem . ReadAllLines ( path . ToProcessDirectory ( ) . ToString ( ) ) ;
1322
+ }
1323
+ public string ReadAllText ( NPath path )
1324
+ {
1325
+ return fileSystem . ReadAllText ( path . ToProcessDirectory ( ) . ToString ( ) ) ;
1326
+ }
1327
+ public string ReadAllText ( NPath path , Encoding encoding )
1328
+ {
1329
+ return fileSystem . ReadAllText ( path . ToProcessDirectory ( ) . ToString ( ) , encoding ) ;
1330
+ }
1331
+ public void WriteAllBytes ( NPath path , byte [ ] bytes )
1332
+ {
1333
+ fileSystem . WriteAllBytes ( path . ToProcessDirectory ( ) . ToString ( ) , bytes ) ;
1334
+ }
1335
+ public void WriteAllLines ( NPath path , string [ ] contents )
1336
+ {
1337
+ fileSystem . WriteAllLines ( path . ToProcessDirectory ( ) . ToString ( ) , contents ) ;
1338
+ }
1339
+ public void WriteAllText ( NPath path , string contents )
1340
+ {
1341
+ fileSystem . WriteAllText ( path . ToProcessDirectory ( ) . ToString ( ) , contents ) ;
1342
+ }
1343
+ public void WriteAllText ( NPath path , string contents , Encoding encoding )
1344
+ {
1345
+ fileSystem . WriteAllText ( path . ToProcessDirectory ( ) . ToString ( ) , contents , encoding ) ;
1346
+ }
1347
+ public void WriteLines ( NPath path , string [ ] contents )
1348
+ {
1349
+ fileSystem . WriteLines ( path . ToProcessDirectory ( ) . ToString ( ) , contents ) ;
1350
+ }
1351
+ }
1231
1352
}
0 commit comments