2016-09-25 16 views
0

我有一個使用UIDocument和寫入數據使用的filewrappers應用:保存爲包(使用filewrappers)和icloud驅動器的文件,是否在通過電子郵件發送時進行壓縮?

public override func contents(forType typeName: String) throws -> Any { 
    print("******writing the contents******") 
    print("**** typeName = \(typeName)") 
    let result = FileWrapper(directoryWithFileWrappers: [:]) 
    ... lots more.... 
} 

這其實工作正常。我也在我的plist文件的uti。該文件可以保存,複製到icloud驅動器,導入回到應用程序,迄今爲止好....

但現在的困難部分:Icloud驅動器有一個電子郵件按鈕。如果我通過該按鈕向我自己發送工作文件,並將文件保存在Mac上,則右鍵單擊菜單選項「show package contents」已不存在。 (雖然它在icloud驅動器中的相同文件存在)。另外,如果我嘗試在iphone上打開此郵件附件,我的應用程序無法找到包裝文件中的子路徑。 (所以我的文件被稱爲bla.myextension,並且元數據應該位於bla.myextension/meta.xml中,但收件箱中的文件似乎是「文件」而不是目錄。

發生了什麼。是電子郵件莫名其妙地自動壓縮和解東西?

回答

0

文件確實會自動拉上,所以在application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:])只是檢查,如果結果是一個目錄,因爲icloud的驅動開口可以給你解壓縮的結果。如果它是一個目錄,然後你必須自己解壓縮。

  var isDir : ObjCBool = ObjCBool(false) 
      if fileManager.fileExists(atPath: url.path, isDirectory: &isDir) { 
       if isDir.boolValue { 
        ...copy directory... 
       } 
       else { 
        ...unzip and copy.... 
       } 

      } 
相關問題