Ruby에서 파일 이름을 바꿀 때 콜론을 어떻게 피합니까?Ruby의 이름 바꾸기 방법. 콜론 이스케이프
new_filename = ""
counter = 0
Dir.glob(folder_path + "/*").each do |f|
numbering = names.index(names.values.sort[counter])
new_filename = numbering + " - " + names.values.sort[counter]
puts "New file name: " + new_filename
File.rename(f, folder_path + "/" + new_filename + File.extname(f))
counter += 1
end
puts "Renaming complete."
new_filename
의 출력은, 수정 예 :
I 코드 다음있다 (이름이 이미 기입 데이터 해쉬이다) "Foo - Bar: Foo.txt"
. 파일의 이름을 바꿀 때 파일의 형식은 "Foo - Bar/ Foo.txt"
입니다.
백 슬래시로 콜론을 사용하여 이스케이프 처리를 시도했지만 작동하지 않는 것 같습니다. 내 출력이 다음과 같습니다 : "Foo - Bar/\ Foo.txt"
.
파일 이름을 바꾸기 위해 문자열에 콜론을 사용할 수 있습니까?
어떤 시스템을 사용하십니까? Windows에서는 파일 이름에':'을 사용할 수 없습니다. 일부 OS (필자는 Mac)가 폴더의 구분 기호로':'를 사용한다고 생각합니다. Ruby는':'를 새로운 폴더로 해석합니다. – knut
@knut : 오래된 맥 오에스는 폴더에':'를 사용하고, OSX는 다른 유닉스와 마찬가지로'/'를 사용합니다. 콜론이있는 파일 이름은 쉘에있는 그대로 표시되지만 Finder는 표시 목적으로 콜론을 슬래시로 변환합니다. –
@muistooshort : 기술적으로, 나는 아직도 HFS + - IIRC의 분리 기호로 사용되지만 POSIX 수준에서 "/"로 바뀌 었습니다 (POSIX 분리 기호이기 때문에). 그런 다음 GUI 계층이이를 바꿉니다 뒤로. – Chuck