如何以编程方式更改图像文件路径?

Posted

技术标签:

【中文标题】如何以编程方式更改图像文件路径?【英文标题】:How to change image filePath programmatically? 【发布时间】:2020-03-03 09:58:24 【问题描述】:

这是我需要更改的图像位置示例:

<img src="file:///Users/User/Library/Developer/CoreSimulator/Devices/B343D95A-92FD-42E4-B10E-BF85210FBC33/data/Containers/Data/Application/662DCB20-3D51-467C-9968-8CA463304B46/Documents/data/a1a1a1/xyz.gif"

这就是我要删除并在其中放置其他内容的内容: data/a1a1a1/

通过下面的函数,我成功地删除了这部分:data/ 并将我想要的东西放在那里。工作正常,因为文件夹 name 数据永远不会改变。 问题我现在想删除这部分:a1a1a1/ 但问题是a1a1a1 可以是任何东西,例如它可以是aef54e3a... 有谁知道如何删除 html 字符串的那部分?

功能:

 func findSrcs(_ content: String) -> String 
        let paths = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)
        let documentsDirectory = paths[0]

        let pattern = #"(?<=src=")[^"]+"#

        var x = content //content is a highlighted string I put above
        var startIndex = content.startIndex
        while let range = content[startIndex...].range(of: pattern, options: .regularExpression) 

                startIndex = range.upperBound
                let c = content.replacingOccurrences(of: "data/", with: "\(documentsDirectory)", options: .literal, range: nil)
                //let d = c.replacingOccurrences(of: "7216444/", with: "", options: .literal, range: nil)
          x = c
        
        return x
    

函数调用:

【问题讨论】:

【参考方案1】:

你可以把while循环里面的代码改成这样:

let url = URL(fileURLWithPath: String(content[range]))
x = documentsDirectory.appendingPathComponent(url.lastPathComponent)

虽然我不确定您是否只想返回一个 x(那么为什么要使用 while?)或一组路径(然后函数应该返回 [String])。

【讨论】:

以上是关于如何以编程方式更改图像文件路径?的主要内容,如果未能解决你的问题,请参考以下文章

在 Android 中以编程方式更改 ImageView 的图像

以编程方式更改 BMP 文件

UIImageView 不会以编程方式更改尺寸

如何以编程方式更改 tabbarItem 的图像

我们如何以编程方式更改图像的约束?

如何以编程方式更改 UISlider 拇指图像的大小