반응형
루비에서 안전한 조인 경로 이름을 수행하는 방법은 무엇입니까?
My Rails 개발 환경은 윈도우즈 기반이고 운영 환경은 리눅스 기반입니다.
가상 호스트가 사용될 수 있습니다.하나의 파일 이름을 에서 참조해야 한다고 가정합니다./public의 폴더.File.open('/tmp/abc.txt', 'r').
—그러나 Windows에서는 다음과 같아야 합니다.C:\tmp\abc.txt서로 다른 두 환경을 처리하기 위해 올바른 경로 조인을 수행하려면 어떻게 해야 합니까?
prefix_tmp_path = '/tmp/'
filename = "/#{rand(10)}.txt"
fullname = prefix_tmp_path + filename # /tmp//1.txt <- but I don't want a double //
그리고 언제prefix_tmp_path = "C:\tmp\"알겠습니다C:\tmp\/1.txt
두 경우를 모두 처리하는 올바른 방법은 무엇입니까?
File.join을 사용하는 것이 좋습니다.
>> File.join("path", "to", "join")
=> "path/to/join"
한 가지 주의할 점이 있습니다.Ruby는 Windows를 포함한 모든 플랫폼에서 파일 구분 기호 "/"를 사용하므로 실제로 다른 플랫폼에서 항목을 함께 결합하는 데 다른 코드를 사용할 필요가 없습니다."C:/tmp/1.text"는 정상적으로 작동합니다.
File.join()은 경로를 함께 결합하는 친구입니다.
prefix_tmp_path = 'C:/tmp'
filename = "#{rand(10)}.txt"
fullname = File.join(prefix_tmp_path, filename) # e.g., C:/tmp/3.txt
언급URL : https://stackoverflow.com/questions/597488/how-to-do-a-safe-join-pathname-in-ruby
반응형
'programing' 카테고리의 다른 글
| Laravel - mysqdump: 'SELECT COLUMN_NAME, JSON_EXTRACT(히스토그램, '$."number-of-buckets-specified") COLUMN_STATISTS를 실행할 수 없습니다. (0) | 2023.06.15 |
|---|---|
| Android Spinner: 선택한 항목 변경 이벤트 가져오기 (0) | 2023.06.15 |
| 날짜에 대한 최대 절전 모드 조건 (0) | 2023.06.15 |
| 특정 단어를 사용하여 엑셀의 한 줄을 복사하고 다른 엑셀 시트에 붙여넣는 방법은 무엇입니까? (0) | 2023.06.15 |
| 로컬 스토리지에서 Vuex 상태가 업데이트되지 않음 (0) | 2023.06.15 |