URL을 문자열로 변환하고 다시 되돌리기
그래서 내가 개종했어NSURL
에 대해서String
그래서 만약에 내가println
인 것 같다file:///Users/...
기타.
나중에 이걸 돌려받고 싶어요NSURL
그래서 아래와 같이 다시 변환하려고 합니다만, 위의 문자열 버전에 나타난 슬래시 중 2개를 잃었습니다.그 결과, 이 슬래시는 코드로서 파괴됩니다.url
무효입니다.
왜 내 전환이 로 되돌아왔을까?NSURL
에서 2개의 전방 슬래시 제거String
이 정보를 제공하는데, 어떻게 하면 이 정보를NSURL
세 개의 슬래시가 들어있나요?
var urlstring: String = recordingsDictionaryArray[selectedRow]["path"] as String
println("the url string = \(urlstring)")
// looks like file:///Users/........etc
var url = NSURL.fileURLWithPath(urlstring)
println("the url = \(url!)")
// looks like file:/Users/......etc
Swift 5, Swift 4 및 Swift 3에서 문자열을 URL로 변환하려면:
URL(string: String)
또는,
URL.init(string: "yourURLString")
URL을 문자열로 변환하려면:
URL.absoluteString
아래 항목은 URL의 '콘텐츠'를 문자열로 변환합니다.
String(contentsOf: URL)
fileURLWithPath()
는 플레인 파일 경로(예: "/path/to/file")를 URL로 변환하는 데 사용됩니다.urlString
스킴을 포함한 완전한 URL 스트링이기 때문에
let url = NSURL(string: urlstring)
환산하다NSURL
. 예:
let urlstring = "file:///Users/Me/Desktop/Doc.txt"
let url = NSURL(string: urlstring)
println("the url = \(url!)")
// the url = file:///Users/Me/Desktop/Doc.txt
Swift의 NSURL에서 경로의 문자열 버전을 가져오는 더 좋은 방법이 있습니다.
let path:String = url.path
2021 | SWIFT 5.1:
로컬 경로의 경우
String --> URL :
let url1 = URL(fileURLWithPath: "//Users/Me/Desktop/Doc.txt")
let url2 = URL(fileURLWithPath: "//Users/Me/Desktop", isDirectory: true)
// !!!!!NEVER DO THIS!!!!!!
let url3 = URL(string: "file:///Users/Me/Desktop/Doc.txt")!
// !!!!!NEVER DO THIS!!!!!!
URL --> 문자열:
let a = String(describing: url1) // "file:////Users/Me/Desktop/Doc.txt"
let b = "\(url1)" // "file:////Users/Me/Desktop/Doc.txt"
let c = url1.absoluteString // "file:////Users/Me/Desktop/Doc.txt"
// Best solution in most cases
let d = url1.path // "/Users/Me/Desktop/Doc.txt"
인터넷 URL의 경우
String --> URL :
let url = URL(string: "https://stackoverflow.com/questions/27062454/converting-url-to-string-and-back-again")!
URL --> 문자열:
url.absoluteString // https://stackoverflow.com/questions/27062454/converting-url-to-string-and-back-again
url.path // /questions/27062454/converting-url-to-string-and-back-again
주의: URL에 주의하세요.optional
그리고 그럴 수 있다nil
따옴표로 URL을 감싸 문자열로 변환할 수 있습니다.운동장에서 시험해 볼 수 있어요.
Swift 5, Xcode 11 업데이트:
import Foundation
let urlString = "http://ifconfig.me"
// string to url
let url = URL(string: urlString)
//url to string
let string = "\(url)"
// if you want the path without `file` schema
// let string = url.path
let url = URL(string: "URLSTRING HERE")
let anyvar = String(describing: url)
Swift 3(NSURL은 잊습니다).
let fileName = "20-01-2017 22:47"
let folderString = "file:///var/mobile/someLongPath"
문자열에서 URL을 작성하려면:
let folder: URL? = Foundation.URL(string: folderString)
// Optional<URL>
// ▿ some : file:///var/mobile/someLongPath
파일명을 추가할 경우.appending Path Component()는 다음과 같이 퍼센트 인코딩을 자동으로 추가합니다.
let folderWithFilename: URL? = folder?.appendingPathComponent(fileName)
// Optional<URL>
// ▿ some : file:///var/mobile/someLongPath/20-01-2017%2022:47
루트 부분이 없는 String을 사용하는 경우(퍼센트 인코딩이 자동으로 삭제된다는 점에 유의하십시오).
let folderWithFilename: String? = folderWithFilename.path
// ▿ Optional<String>
// - some : "/var/mobile/someLongPath/20-01-2017 22:47"
루트 부분을 유지하는 경우는, 다음의 조작을 실시합니다(단, 퍼센티지 부호화에 주의해 주세요).- 삭제되지 않습니다.
let folderWithFilenameAbsoluteString: String? = folderWithFilenameURL.absoluteString
// ▿ Optional<String>
// - some : "file:///var/mobile/someLongPath/20-01-2017%2022:47"
문자열의 퍼센트 부호화를 수동으로 추가하려면:
let folderWithFilenameAndEncoding: String? = folderWithFilename.addingPercentEncoding(withAllowedCharacters: CharacterSet.urlQueryAllowed)
// ▿ Optional<String>
// - some : "/var/mobile/someLongPath/20-01-2017%2022:47"
퍼센트 인코딩을 삭제하려면:
let folderWithFilenameAbsoluteStringNoEncodig: String? = folderWithFilenameAbsoluteString.removingPercentEncoding
// ▿ Optional<String>
// - some : "file:///var/mobile/someLongPath/20-01-2017 22:47"
비율 인코딩은 네트워크 요청에 대한 URL이 필요하지만 파일 시스템에 대한 URL이 항상 작동하는 것은 아닙니다. 비율 인코딩은 네트워크 요청을 사용하는 실제 방법에 따라 달라집니다.여기서 주의할 점은 이러한 변환은 자동으로 삭제 또는 추가될 수 있으므로 신중하게 디버깅하는 것이 좋습니다.
Swift 3 버전 코드:
let urlString = "file:///Users/Documents/Book/Note.txt"
let pathURL = URL(string: urlString)!
print("the url = " + pathURL.path)
스위프트 5
변환하려면String
에 대해서URL
:
let stringToURL = URL(string: "your-string")
변환하려면URL
에 대해서String
:
let urlToString = stringToURL?.absoluteString
UI WebViewDelegate에서 사용되는 Swift 3은 StartLoad With와 함께 사용되어야 합니다.
func webView(_ webView: UIWebView, shouldStartLoadWith request: URLRequest, navigationType: UIWebViewNavigationType) -> Bool {
let urlPath: String = (request.url?.absoluteString)!
print(urlPath)
if urlPath.characters.last == "#" {
return false
}else{
return true
}
}
언급URL : https://stackoverflow.com/questions/27062454/converting-url-to-string-and-back-again
'source' 카테고리의 다른 글
윈도 인스턴스의 hWnd를 얻는 방법 (0) | 2023.04.12 |
---|---|
ITMS-90717 오류: "잘못된 앱 스토어 아이콘" (0) | 2023.04.12 |
열 이름이 있는 모든 테이블 이름을 찾으시겠습니까? (0) | 2023.04.12 |
Powershell 스크립트에서 BAT 파일을 실행하는 가장 안전한 방법 (0) | 2023.04.12 |
텍스트 파일을 Windows 명령줄과 연결하고 선행 행을 삭제합니다. (0) | 2023.04.12 |