@@ -393,25 +393,59 @@ public static string GetPackageDirectory(string path, bool actualPath) {
393
393
return packageDir ;
394
394
}
395
395
396
+ /// <summary>
397
+ /// Result of RemoveAssets().
398
+ /// </summary>
399
+ public class RemoveAssetsResult {
400
+
401
+ /// <summary>
402
+ /// Assets that were removed.
403
+ /// </summary>
404
+ public List < string > Removed { get ; set ; }
405
+
406
+ /// <summary>
407
+ /// Assets that failed to be removed.
408
+ /// </summary>
409
+ public List < string > RemoveFailed { get ; set ; }
410
+
411
+ /// <summary>
412
+ /// Assets that were missing.
413
+ /// </summary>
414
+ public List < string > Missing { get ; set ; }
415
+
416
+ /// <summary>
417
+ /// Whether the operation was successful.
418
+ /// </summary>
419
+ public bool Success { get { return RemoveFailed . Count == 0 && Missing . Count == 0 ; } }
420
+
421
+ /// <summary>
422
+ /// Construct an empty result.
423
+ /// </summary>
424
+ public RemoveAssetsResult ( ) {
425
+ Removed = new List < string > ( ) ;
426
+ RemoveFailed = new List < string > ( ) ;
427
+ Missing = new List < string > ( ) ;
428
+ }
429
+ }
430
+
396
431
/// <summary>
397
432
/// Remove the given set of files and their folders.
398
433
/// </summary>
399
434
/// <param name = "filenames">Files to be removed/</param>
400
435
/// <param name = "logger">Logger to log results.</param>
401
436
/// <return>True if all files are removed. False if failed to remove any file or
402
437
/// if any file is missing.</return>
403
- public static bool RemoveAssets ( IEnumerable < string > filenames , Logger logger = null ) {
404
- List < string > assetRemoved = new List < string > ( ) ;
405
- List < string > assetRemoveFailed = new List < string > ( ) ;
406
- List < string > assetMissing = new List < string > ( ) ;
438
+ public static RemoveAssetsResult RemoveAssets ( IEnumerable < string > filenames ,
439
+ Logger logger = null ) {
440
+ var result = new RemoveAssetsResult ( ) ;
407
441
408
442
HashSet < string > folderToRemove = new HashSet < string > ( ) ;
409
443
foreach ( var filename in filenames ) {
410
444
if ( File . Exists ( filename ) ) {
411
445
if ( AssetDatabase . DeleteAsset ( filename ) ) {
412
- assetRemoved . Add ( filename ) ;
446
+ result . Removed . Add ( filename ) ;
413
447
} else {
414
- assetRemoveFailed . Add ( filename ) ;
448
+ result . RemoveFailed . Add ( filename ) ;
415
449
}
416
450
417
451
// Add folder and parent folders to be removed later.
@@ -424,7 +458,7 @@ public static bool RemoveAssets(IEnumerable<string> filenames, Logger logger = n
424
458
folder = Path . GetDirectoryName ( folder ) ;
425
459
}
426
460
} else {
427
- assetMissing . Add ( filename ) ;
461
+ result . Missing . Add ( filename ) ;
428
462
}
429
463
}
430
464
@@ -448,6 +482,7 @@ public static bool RemoveAssets(IEnumerable<string> filenames, Logger logger = n
448
482
Directory . GetDirectories ( folder ) . Length == 0 ) {
449
483
if ( ! AssetDatabase . DeleteAsset ( folder ) ) {
450
484
folderRemoveFailed . Add ( folder ) ;
485
+ result . RemoveFailed . Add ( folder ) ;
451
486
}
452
487
}
453
488
}
@@ -456,12 +491,12 @@ public static bool RemoveAssets(IEnumerable<string> filenames, Logger logger = n
456
491
logger . Log (
457
492
String . Format ( "Removed:\n {0}\n Failed to Remove:\n {1}\n Missing:\n {2}\n " +
458
493
"Failed to Remove Folders:\n {3}\n " ,
459
- String . Join ( "\n " , assetRemoved . ToArray ( ) ) ,
460
- String . Join ( "\n " , assetRemoveFailed . ToArray ( ) ) ,
461
- String . Join ( "\n " , assetMissing . ToArray ( ) ) ,
494
+ String . Join ( "\n " , result . Removed . ToArray ( ) ) ,
495
+ String . Join ( "\n " , result . RemoveFailed . ToArray ( ) ) ,
496
+ String . Join ( "\n " , result . Missing . ToArray ( ) ) ,
462
497
String . Join ( "\n " , folderRemoveFailed . ToArray ( ) ) ) , level : LogLevel . Verbose ) ;
463
498
}
464
- return assetRemoveFailed . Count == 0 && assetMissing . Count == 0 ;
499
+ return result ;
465
500
}
466
501
}
467
502
}
0 commit comments