我有一個長時間運行的任務,在掛載的USB驅動器上執行一系列的文件操作,我想阻止用戶在發生這種情況時從Finder(或其他地方)彈出驅動器。有一個取消按鈕,可以讓任務在任何時候結束。如何防止在Mac OS X操作期間彈出磁盤?
我曾經假定在任務持續時間內,在安裝的捲上保持文件句柄保持打開狀態會起到訣竅的作用,但它沒有奏效。
這是我試了一下(處理刪除錯誤):
NSString *tempFilePath = @"/Volumes/myVolume/.myTempFile";
if ([[NSFileManager defaultManager] fileExistsAtPath:tempFilePath] == NO) {
[[NSFileManager defaultManager] createFileAtPath:tempFilePath contents:nil attributes:nil]
}
_tempFile = [NSFileHandle fileHandleForWritingAtPath:tempFilePath];
約我能做些什麼,以確保卷從噴射防止任何想法?
不想破壞你的泡泡,但如果有人只是拔掉他們的USB驅動器?如果驅動器是硬件驅動的,則不可能阻止它被彈出。爲什麼不能給用戶一個非常嚴峻的警告,即他們不應該彈出驅動器,否則操作將失敗? – 2010-09-15 18:22:41
我確實意識到我們不能完全防止無意中斷開連接。儘可能多的我希望用戶被迫進入有意識的決定來停止操作,以便他們可以理解爲什麼某些功能稍後不適合他們。 – mcsheffrey 2010-09-15 18:27:39
@ferrari fan:mcsheffrey想要什麼是有用的,因爲用戶可能會忘記這個任務沒有完成,並以某種方式「保留」磁盤將有助於意外彈出。 – mohsenr 2010-09-15 18:29:47