在Windows操作系統中,反斜槓\
用於文件路徑(c:\mytext.txt
)。在linux/unix OS中,在文件路徑(/home/mytext.txt
)中使用正斜槓/
。給定一個目錄路徑file_dir
和file_name
,如何爲操作系統找到合適的slash
並組裝文件路徑(操作系統可以是Windows或Linux)? file_dir + '/' + file name
或file_dir + '\' + file_name
?斜線的任何逃生?如何在ruby中選擇斜槓和組裝文件路徑?
回答
如果可能,Ruby將在不同操作系統約定之間轉換路徑名。例如,在Windows系統上,文件名「/gumby/ruby/test.rb」將打開爲「\ gumby \ ruby \ test.rb」。當一個Ruby字符串,指定一個Windows風格的文件名,還記得逃離反斜槓:
"c:\\gumby\\ruby\\test.rb"
所以,不要讓更多的工作,爲自己。爲了清晰起見,使用正斜槓並去除斜牙籤綜合徵字符串。
如果需要知道使用什麼路徑分隔符,總是有File::ALT_SEPARATOR
但它搞亂或編寫代碼訪問它,而不是直接讓紅寶石做的是很少需要正確的事情。所有File方法都已經加入並拆分了榮譽File::ALT_SEPARATOR
。
File :: ALT_SEPARATOR可用於獲取平臺特定的分隔符。
使用File.join
這是與操作系統無關:
File.join("my", "dir", "and", "my", "file")
#=> my\dir\and\my\file for Windows
#=> my/dir/and/my/file for unix
併爲多平臺開發做好準備! :) –
File.join總是從根啓動,如果文件沒有保存在web根目錄下,則可能不正確。 – user938363
@ user938363你可以使用'File.expand_path'來創建相對路徑。另外它的問題只是關於斜槓;) – fl00r
紅寶石使用/
爲Windows和Unix系統的路徑分隔符:
PS C:\Users\Administrator> irb
irb(main):001:0> Dir.pwd
=> "C:/Users/Administrator"
irb(main):002:0> File.join(Dir.pwd,'testing.txt')
=> "C:/Users/Administrator/testing.txt"
irb(main):003:0> File.read(File.join(Dir.pwd,'testing.txt'))
=> "foo bar"
所以如果你真的想用一個字符串即可做這樣的事情以及:
irb(main):004:0> File.read('C:/Users/Administrator/testing.txt')
=> "foo bar"
- 1. Windows文件路徑中的反斜槓?
- 2. Ruby中的斜槓和反斜槓
- 3. this.src路徑移除反斜槓文件
- 4. 反斜槓在Java路徑
- 5. 路徑與反斜槓與前進路徑斜槓的JavaScript
- 6. 「//」(正斜槓,正斜槓)在PHP路徑名中做什麼?
- 7. 雙斜槓//在路徑中 - 我可以使用單斜槓嗎?
- 8. 寫入文本文件的路徑,如何省略反斜槓?
- 9. 如何在路徑中插入字符串和斜槓?
- 10. 如何用斜槓分割路徑?
- 11. inspect.stack()用斜槓和反斜槓返回路徑值
- 12. 替換反斜槓所有斜槓指定標記中的文件路徑
- 13. Emacs窗口找到文件斜槓反斜槓無論是在路徑
- 14. Python的Windows路徑斜槓
- 15. 在VB.Net路徑中的反斜槓
- 16. 在Java中的文件路徑中轉義反斜槓
- 17. 如何刪除重複的文件路徑斜槓
- 18. 變化路徑在一個文件中反斜槓使用PowerShell
- 19. 點而不是在c#文件路徑中的斜槓
- 20. 雙斜槓在文件路徑中的含義是什麼?
- 21. 用LPSTR文件路徑中的雙反斜槓或正斜槓替換反斜槓
- 22. 如何從文件路徑使用反斜槓的文件中讀取數據?
- 23. 讀取以單斜槓或雙斜槓開始的文件路徑的差異
- 24. PHP上傳路徑中沒有斜槓
- 25. 在cookie路徑上設置斜槓?
- 26. 如何讓JFileChooser返回包含正斜槓的文件或目錄路徑而不是java中的反斜槓?
- 27. XPages:@DbName()從數據庫文件路徑中刪除斜槓
- 28. std :: regex轉義文件路徑中的反斜槓
- 29. 在路徑URL後添加斜槓時未加載CSS文件
- 30. 如何在我的路徑中包含正斜槓?
'在Ruby字符串中指定Windows風格的文件名時,請記住要避免反斜槓:'我們的開發是Windows,託管是ubuntu。是'file_path.gsub('\','\\')'去做這項工作嗎?如果我們必須找出路徑是Windows風格還是添加了反斜槓,這會有點痛苦。 – user938363
你總是可以使用單引號,即'path ='C:\ gumby \ ruby \ test.rb'來避免任何轉義。 – ptierno