|  | @@ -42,6 +42,19 @@ public class DotIgnoreIgnoreRule : IResolverIgnoreRule
 | 
	
		
			
				|  |  |      /// <returns>True if the file should be ignored.</returns>
 | 
	
		
			
				|  |  |      public static bool IsIgnored(FileSystemMetadata fileInfo, BaseItem? parent)
 | 
	
		
			
				|  |  |      {
 | 
	
		
			
				|  |  | +        if (fileInfo.IsDirectory)
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var dirIgnoreFile = FindIgnoreFile(new DirectoryInfo(fileInfo.FullName));
 | 
	
		
			
				|  |  | +            if (dirIgnoreFile is null)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                return false;
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            // ignore the directory only if the .ignore file is empty
 | 
	
		
			
				|  |  | +            // evaluate individual files otherwise
 | 
	
		
			
				|  |  | +            return string.IsNullOrWhiteSpace(GetFileContent(dirIgnoreFile));
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |          var parentDirPath = Path.GetDirectoryName(fileInfo.FullName);
 | 
	
		
			
				|  |  |          if (string.IsNullOrEmpty(parentDirPath))
 | 
	
		
			
				|  |  |          {
 | 
	
	
		
			
				|  | @@ -55,13 +68,9 @@ public class DotIgnoreIgnoreRule : IResolverIgnoreRule
 | 
	
		
			
				|  |  |              return false;
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        string ignoreFileString;
 | 
	
		
			
				|  |  | -        using (var reader = ignoreFile.OpenText())
 | 
	
		
			
				|  |  | -        {
 | 
	
		
			
				|  |  | -            ignoreFileString = reader.ReadToEnd();
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | +        string ignoreFileString = GetFileContent(ignoreFile);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        if (string.IsNullOrEmpty(ignoreFileString))
 | 
	
		
			
				|  |  | +        if (string.IsNullOrWhiteSpace(ignoreFileString))
 | 
	
		
			
				|  |  |          {
 | 
	
		
			
				|  |  |              // Ignore directory if we just have the file
 | 
	
		
			
				|  |  |              return true;
 | 
	
	
		
			
				|  | @@ -74,4 +83,12 @@ public class DotIgnoreIgnoreRule : IResolverIgnoreRule
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          return ignore.IsIgnored(fileInfo.FullName);
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    private static string GetFileContent(FileInfo dirIgnoreFile)
 | 
	
		
			
				|  |  | +    {
 | 
	
		
			
				|  |  | +        using (var reader = dirIgnoreFile.OpenText())
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            return reader.ReadToEnd();
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  |  }
 |