首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从iOS使用smb在本地访问Windows/Mac共享文件夹

从iOS使用smb在本地访问Windows/Mac共享文件夹
EN

Stack Overflow用户
提问于 2019-09-13 13:19:23
回答 2查看 1.2K关注 0票数 1

我正在尝试构建一个应用程序,以便能够使用swift访问(读/写)本地网络中的windows/mac共享文件夹。

有没有可能用swift做到这一点?

在App Store中有一个名为"FileExplorer“https://apps.apple.com/de/app/fe-file-explorer-file-manager/id510282524的应用程序,你可以在那里访问这些共享文件夹,但我不知道他们是如何编程的,也不知道是用哪种语言编写的。我也试着通过这个应用程序访问我的共享文件夹,是的,它工作了,我可以在我的手机上看到我的共享文件夹。

但是需要有一种方法来使用swift..。

我已经尝试过不同的方法(代码如下)。在下面的代码中,我试图访问我的第二台mac的共享文件夹,并将文本"Write this Text to the fileURL as text In iOS“写到名为"Test.txt”的文件中,然后我想再次读取相同的文件。

代码语言:javascript
运行
复制
@IBAction func Button(_ sender: UIButton)
{
    var uc = URLComponents()
    uc.scheme = "smb"
    uc.user = "user"
    uc.password = "password"
    uc.host = "ip-adress"
    uc.path = "document-directory"

    // Save data to file
    let fileName = "Test"
    let url = uc.url
    //let DocumentDirURL = URL(fileURLWithPath: "/Users/f/d/t/App/Assets/Apps/TestApp")
    let DocumentDirURL = try! URL(resolvingAliasFileAt: url!)
    let fileURL = DocumentDirURL.appendingPathComponent(fileName).appendingPathExtension("txt")
    print("FilePath: \(fileURL.path)")


    let writeString = "Write this text to the fileURL as text in iOS using Swift"
    do {
        // Write to the file
        try writeString.write(to: fileURL, atomically: true, encoding: String.Encoding.utf8)
    } catch let error as NSError {
        print("Failed writing to URL: \(fileURL), Error: " + error.localizedDescription)
    }



    var fullString: String = "" // Used to store the file contents
    do {
        // Read the file contents
        fullString = try String(contentsOf: fileURL, encoding: .utf8)

    } catch let error as NSError {
        print("Failed reading from URL: \(fileURL), Error: " + error.localizedDescription)
    }
    print("File Text: \(readString)")
}

如果我运行代码如图所示,他总是给我一个错误"smb方案不受支持“,然后是一些额外的错误,他不能写/读文件,因为他不能访问它。

当我修改代码,只搜索我正在编程的设备,然后运行模拟器来搜索这个文件时,一切都很正常。所以我对"smb“有问题。

感谢你的每一个有用的回答。

EN

回答 2

Stack Overflow用户

发布于 2020-10-08 12:44:54

您可以使用amsmb2库来完成此操作

您可以扩展提供的模板类,以连接到中小型企业共享上的下载文件、写入文件、列出目录->

一切都是与内存异步的,库的调用包括用于ui主线程上的进度更新的挂钩等

我相信你想要的amsmb2库函数可能是uploadItem

票数 2
EN

Stack Overflow用户

发布于 2019-09-24 05:30:34

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57917671

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档