blob: 1eb7f6f58f0a31716949ea1e4c72cc32b03a178a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
import Foundation
extension Data {
func saveAsFileToDownloads(filename: String, bounceDock: Bool = true) -> Bool {
let folderURL = FileManager.default.urls(for: .downloadsDirectory, in: .userDomainMask)[0]
let filePath = folderURL.generateUniqueFilePath(filename: filename)
if FileManager.default.createFile(atPath: filePath, contents: nil) {
if let h = FileHandle(forWritingAtPath: filePath) {
try? h.write(contentsOf: self)
try? h.close()
if bounceDock {
#if os(macOS)
var downloadURL = URL(filePath: filePath)
downloadURL.resolveSymlinksInPath()
DistributedNotificationCenter.default().post(
name: .init("com.apple.DownloadFileFinished"), object: downloadURL.path)
#endif
}
return true
}
}
return false
}
}
|