16 lines
508 B
Swift
16 lines
508 B
Swift
import Foundation
|
|
|
|
// swiftlint:disable force_try
|
|
public func withTemporaryDirectory(
|
|
_ operation: @Sendable (URL) async throws -> Void
|
|
) async rethrows {
|
|
let temporaryDirectory = FileManager.default
|
|
.temporaryDirectory
|
|
.appending(path: UUID().uuidString)
|
|
try! FileManager.default.createDirectory(at: temporaryDirectory, withIntermediateDirectories: false)
|
|
try await operation(temporaryDirectory)
|
|
try! FileManager.default.removeItem(at: temporaryDirectory)
|
|
}
|
|
|
|
// swiftlint:enable force_try
|