Конвертировать путь Windows в UNC в Ruby - PullRequest
1 голос
/ 01 февраля 2011

Я бы хотел преобразовать следующий PATH в UNC-путь в Ruby.

C: /Users/bla/bla2/asdf-ut-script.js

1 Ответ

1 голос
/ 01 февраля 2011

A UNC-путь требует, чтобы вы знали имя сервера и общий ресурс, ни один из которых не присутствует на вашем пути, если вы не ищете что-то вроде:
\\localhost\C$\Users\bla\bla2\asdf-ut-script.js

Если это то, что вы хотите:

def File.to_unc( path, server="localhost", share=nil )
  parts = path.split(File::SEPARATOR)
  parts.shift while parts.first.empty?
  if share
    parts.unshift share
  else
    # Assumes the drive will always be a single letter up front
    parts[0] = "#{parts[0][0,1]}$" 
  end
  parts.unshift server
  "\\\\#{parts.join('\\')}"
end

puts File.to_unc( "C:/Users/bla/bla2/asdf-ut-script.js" )
#=> \\localhost\C$\Users\bla\bla2\asdf-ut-script.js

puts File.to_unc( "C:/Users/bla/bla2/asdf-ut-script.js", 'filepile' )
#=> \\filepile\C$\Users\bla\bla2\asdf-ut-script.js

puts File.to_unc( "/bla/bla2/asdf-ut-script.js", 'filepile', 'HOME' )
#=> \\filepile\HOME\bla\bla2\asdf-ut-script.js
...