Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 将拖动的文件夹(项目)复制到swift macOS中的临时文件夹中_Ios_Macos - Fatal编程技术网

Ios 将拖动的文件夹(项目)复制到swift macOS中的临时文件夹中

Ios 将拖动的文件夹(项目)复制到swift macOS中的临时文件夹中,ios,macos,Ios,Macos,是否有人知道如何在拖放时将拖动的文件夹(项目)复制到临时文件夹中,而无需任何细节,我建议您阅读本文 对于UI,Swift更简单: struct ContentView: View, DropDelegate { @State private var dragging = false let TYPE = (kUTTypeFileURL as String) var body: some View { Text("drag here!")

是否有人知道如何在拖放时将拖动的文件夹(项目)复制到临时文件夹中,而无需任何细节,我建议您阅读本文

对于UI,Swift更简单:

struct ContentView: View, DropDelegate {
    @State private var dragging = false
    let TYPE = (kUTTypeFileURL as String)
    var body: some View {
        Text("drag here!")
            .frame(maxWidth: .infinity, maxHeight: .infinity)
            .border(dragAreaBorder, width: 5)
            .onDrop(of: [TYPE], delegate: self)
    }

    var dragAreaBorder: Color {
        return dragging ? .accentColor : .yellow
    }

    func dropUpdated(info: DropInfo) -> DropProposal? {
        dragging = true
        let proposal = DropProposal.init(operation: .copy)
        return proposal
    }

    func performDrop(info: DropInfo) -> Bool {
        let itemProviders = info.itemProviders(for: [TYPE])

        for itemProvider in itemProviders{
            itemProvider.loadItem(forTypeIdentifier: TYPE, options: nil) { item, error in
            guard let data = item as? Data, let url = URL(dataRepresentation: data, relativeTo: nil) else { return }

            // remember to dispatch on main in case of a @State change

            //print(url)
            process(url: url)
        }

        self.dragging = false

        return true
    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }

    func process(url: URL){

        let isDirectory = url.hasDirectoryPath
        if !isDirectory{
        let path = url.path
            doTaskFor(sourcePath: path, callback: callback)
            return
        }

        let fm = FileManager.default
        // is a dir:
        guard let files = try? fm.contentsOfDirectory(at : url,
                              includingPropertiesForKeys : nil,
                                                 options : [] ) else {
                                                     return
                                                 }
        for url in files{
        //..... what ever...
    }
}

我有一个处理拖拽文件的想法,但需要知道如何处理文件夹项目请将您的问题限制在与编程相关的任何内容。这并不能提供问题的答案。若要评论或要求作者澄清,请在其帖子下方留下评论。-我不同意。答案是:a)提供一个有用的教程链接b)我提供一个工作示例。。。所以