[banshee] Import from top-level hidden dirs (bgo#601068)



commit 7d921c2983066fd82658dce281da22e3954d6e55
Author: Alexander Kojevnikov <alexander kojevnikov com>
Date:   Fri Jan 29 18:47:01 2010 +1100

    Import from top-level hidden dirs (bgo#601068)

 .../Banshee.IO/DirectoryScannerPipelineElement.cs  |   12 +++++++-----
 1 files changed, 7 insertions(+), 5 deletions(-)
---
diff --git a/src/Core/Banshee.Core/Banshee.IO/DirectoryScannerPipelineElement.cs b/src/Core/Banshee.Core/Banshee.IO/DirectoryScannerPipelineElement.cs
index ef6526b..5c71f4f 100644
--- a/src/Core/Banshee.Core/Banshee.IO/DirectoryScannerPipelineElement.cs
+++ b/src/Core/Banshee.Core/Banshee.IO/DirectoryScannerPipelineElement.cs
@@ -39,11 +39,11 @@ namespace Banshee.IO
     {
         protected override string ProcessItem (string item)
         {
-            ScanForFiles (item);
+            ScanForFiles (item, false);
             return null;
         }
 
-        private void ScanForFiles (string source)
+        private void ScanForFiles (string source, bool skip_hidden)
         {
             CheckForCanceled ();
 
@@ -69,14 +69,16 @@ namespace Banshee.IO
                 }
             } else if (is_directory) {
                 try {
-                    if (!Path.GetFileName (Path.GetDirectoryName (source)).StartsWith (".")) {
+                    // Normalise the path (remove the trailing directory separator)
+                    source = Path.Combine (Path.GetDirectoryName (source), Path.GetFileName (source));
+                    if (!skip_hidden || !Path.GetFileName (source).StartsWith (".")) {
                         try {
                             foreach (string file in Banshee.IO.Directory.GetFiles (source)) {
-                                ScanForFiles (file);
+                                ScanForFiles (file, true);
                             }
 
                             foreach (string directory in Banshee.IO.Directory.GetDirectories (source)) {
-                                ScanForFiles (directory);
+                                ScanForFiles (directory, true);
                             }
                         } catch {
                         }



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]