         }
     }
     
-    func cacheMetadataFilePath() -> URL {
-        let cacheMetadataFileName = "\(self.cacheFileName()).metadata"
+    func cacheMetadataFilePath(_ customLoadCacheInfo: CustomLoadCacheInfo? = nil) -> URL {
+        let cacheMetadataFileName = "\(self.cacheFileName(customLoadCacheInfo)).metadata"
         let pathURL = self.cacheBasePath().appendingPathComponent(cacheMetadataFileName)
         return pathURL
     }

        return try? Data(contentsOf: url)
    }
    
    func loadCacheMetadata() -> Bool {
        let pathURL = self.cacheMetadataFilePath()
        if FileManager.default.fileExists(atPath: pathURL.path, isDirectory: nil) {
            if let cacheMetadata = NSKeyedUnarchiver.unarchiveObject(withFile: pathURL.path) as? SYCacheMetadata {
                self.cacheMetadata = cacheMetadata

        
        // Try load metadata.
        
        if !self.loadCacheMetadata(customLoadCacheInfo) {
            throw LoadCacheError.invalidMetadata
        }
        
