推 FAT32: 推推!12/26 10:32
推 Gauss: 推12/26 11:09
推 mtcoat: 不知道穩定性高不高 最怕檔案莫名不見就慘了12/26 12:11
大大您的顧慮是對的
所以我在安裝的之前有特別去看了一下原始碼
它的程式碼很簡短
我貼在文下您可以看看
一般來說我們都會擔心程式進行增刪的動作
萬一沒寫好,就會出包
但這程式我看到他是用File Manager的套件
這是蘋果自家的套件
是用這個套件內的指令
相對來說應該是安全得多
也就是說
程式是用回圈去告知蘋果系統,請將這檔案卸載
而不是程式自己去砍
當然
這樣的寫法雖然頗為合理
卻不是代表我幫作者背書唷
大家有興趣可以看看程式碼
就能了解
敝人只是自己是這方面苦主,找到良方之後希望共享之
其中是否安全或穩定
只能說目前我用起來還OK
大家自行判斷,感謝^^
以下是整個程式
非常簡短
//
// FinderSync.swift
// iCloudExtension
//
// Created by Robbert Brandsma on 30-06-16.
// Copyright ꤠ2016 Robbert Brandsma. All rights reserved.
//
import Cocoa
import FinderSync
class FinderSync: FIFinderSync {
let fm = FileManager.default
// MARK: - Menu and toolbar item support
override var toolbarItemName: String {
return "iCloud Control"
}
override var toolbarItemToolTip: String {
return "Manually manage iCloud storage"
}
override var toolbarItemImage: NSImage {
return NSImage(named: "CloudToolbarIcon")!
}
override func menu(for menuKind: FIMenuKind) -> NSMenu {
NSLog("menu(for:)")
let menu = NSMenu(title: "")
menu.addItem(withTitle: "Remove selected item locally", action: #selec
tor(removeLocal(_:)), keyEquivalent: "")
menu.addItem(withTitle: "Download selected item", action: #selector(do
wnloadItem(_:)), keyEquivalent: "")
menu.addItem(withTitle: "Publish public link", action: #selector(publi
sh(_:)), keyEquivalent: "")
return menu
}
@IBAction func removeLocal(_ sender: AnyObject?) {
NSLog("removeLocal")
for target in currentTargets {
NSLog("Local removal of \(target) requested")
do {
try fm.evictUbiquitousItem(at: target)
NSLog("Removal of \(target) succeeded")
} catch {
NSLog("Removal of \(target) failed with error \(error)")
}
}
}
@IBAction func publish(_ sender: AnyObject?) {
var urls = [URL]()
for target in currentTargets {
NSLog("Publishing \(target) requested")
do {
let url = try fm.url(forPublishingUbiquitousItemAt: target, ex
piration: nil)
NSLog("Publishing \(target) succeeded, url: \(url)")
urls.append(url)
} catch {
NSLog("Publishing \(target) failed with error \(error)")
}
}
let pb = NSPasteboard.general()
pb.clearContents()
pb.writeObjects(urls as [NSPasteboardWriting])
}
@IBAction func downloadItem(_ sender: AnyObject?) {
NSLog("Download requested")
for target in currentTargets {
NSLog("Download of \(target) requested")
do {
try fm.startDownloadingUbiquitousItem(at: target)
NSLog("Download of \(target) succeeded")
} catch {
NSLog("Download of \(target) failed with error \(error)")
}
}
}
var currentTargets: [URL] {
var targets = FIFinderSyncController.default().selectedItemURLs() ?? [
]
if let targetedUrl = FIFinderSyncController.default().targetedURL(), t
argets.count == 0 {
targets.append(targetedUrl)
}
return targets
}
}
※ 編輯: bluewild (210.59.168.61), 12/26/2018 13:42:29
推 concord: 推 所以技術上可以弄個 tool 反覆對特定folder卸載 12/26 16:38
→ concord: 這樣就有機會達成選擇才下載的巨大分享目錄.. 12/26 16:39
→ bluewild: 是這樣沒錯~我是沒改啦~就原封不動用XD 12/26 17:00
推 idletime: 推推~~~ 12/26 18:18
→ otakuxavier: 太神啦! 12/27 07:27
推 shiou0909: 2TB使用者浮出水面表達感激涕零 12/28 02:32
噓 daniel35: 10.13.6,按照步驟安裝後,工具列沒有icon,自訂裡面也 12/28 10:01
→ daniel35: 沒有相關選項QQ 12/28 10:01
推 IstandTIPTOE: 實用推 12/28 14:51
→ concord: 裝完記得 killall Finder 12/28 20:03
推 checkfu: 雖然沒用到該需求,幫推 12/30 11:50
推 tomap41017: 推 06/11 20:25