File.dirname
을 사용하여 Windows 상자에서 파일 디렉터리를 가져 오려고합니다. Windows 상자에서 파일 (아래 "file1")을 가져 와서 스크립트가 실행되는 Mac OS X 상자로 반환합니다. 내가 왜 그것을에서 혼란 스러워요File.dirname이 경로를 예상 할 때 마침표를 반환하는 이유는 무엇입니까?
file1 = "C:\Administrator\proj1\testFile.txt"
path = "#{File.dirname(file1)}"
puts "#{path}"
>> .
아래
file1 = "C:\Administrator\proj1\testFile.txt"
'.'
을 반환합니다. 나는
File.dirname
다음 말한다 ruby-doc.org에 보았다.
나는는 "지난 제외한 FILE_NAME에 주어진 이름의 모든 구성 요소를 반환 파일 이름은 모두 파일 :: SEPARATOR를 사용하여 파일을 형성 할 수있다 :: ALT_SEPARETOR는 File :: ALT_SEPARATOR가 nil이 아닌 경우 구분 기호로 사용됩니다. "
File::SEPARATOR
과
File::ALT_SEPARATOR
에
puts
을했고, 다음 가지고 :
File::SEPARATOR >>/
File::ALT_SEPARATOR >>
내가 "\"는 유효한 파일 분리되지 않았기 때문에 그것이 가정한다. 그래서 File::ALT_SEPARATOR
을 "\"로 설정했습니다. 그러나 그 후에도 나는 puts path
일 때 동일한 값을 얻습니다.
file1 = "C:\Administrator\proj1\testFile.txt"
path = "#{File.realdirpath(file1)}"
puts "{path}"
>> /Users/me/myProject/C:\Administrator\proj1\testFile.txt
내가 루비 스크립트라는 곳에서 경로를 추가하는 듯 (파일 이름 포함)의 전체 경로를 추가 :
나는 File.realdirpath
를 사용하여 시도하고이 결과였다. 이상한 행동으로 보입니다.
모든 아이디어, 의견 또는 제안 사항이 우수 할 것입니다.
코드에 문제가 있습니다. 'puts "path"'도트 문자열이 아니라'path' 문자열을 출력합니다. –
죄송합니다. 그것을 잘못해서 복사했습니다. 이제 해결되었습니다. –
왜 문자열 보간법을 사용하고 있습니까? –