blob: 0e9dd964bb5f66c9a28cc4e60c11de98dff00405 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
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
}
}
|