     public init(path: URL, filenameGenerator: @escaping (String) -> String?) throws {
         self.path = path
         self._filenameGenerator = filenameGenerator
+        try self._didInit()
+    }
+    #endif
+
+    private func _didInit() throws {
         try FileManager.default.createDirectory(at: path, withIntermediateDirectories: true, attributes: nil)
-    }
-    #endif
+        _wqueue.asyncAfter(deadline: .now() + initialSweepDelay) { [weak self] in
+            self?._performAndScheduleSweep()
+        }
+    }
 
     // MARK: DataCaching
 

    /// Sweeps are performed in a background and can be performed in parallel
    /// with reading.
    public var sweepInterval: TimeInterval = 30

    // Staging
    private let _lock = NSLock()

    public init(path: URL, filenameGenerator: @escaping (String) -> String? = DataCache.filename(for:)) throws {
        self.path = path
        self._filenameGenerator = filenameGenerator
        try self._didInit()
    }

    /// A `FilenameGenerator` implementation which uses SHA1 hash function to
