2016-08-01 68 views
-4

我正在編寫一個腳本來使用模塊net/scp從客戶端上傳文件夾到服務器,但我不知道如果服務器上尚不存在,使用ruby自動創建新文件夾。我該怎麼做?我怎樣才能使用net/scp在服務器上運行任何Ruby腳本?如何在Ruby中的服務器上創建文件夾?

這是我到目前爲止的代碼:

def upload(fileName_upload,pathLocalFolder,pathRemoteFolder) 
    pathLocalFolder=pathLocalFolder + '/'+fileName_upload 
    Net::SCP.start($host, $username, :password => $pass_Word) do |scp| 
    scp.upload! pathLocalFolder, pathRemoteFolder 
    channel = scp.upload(pathLocalFolder, pathRemoteFolder) 
    channel.wait 
end 

def uploadFolder(pathLocalFolder,nameFolderInServer) 
    # I want to create a folder on the server, but I don't know how to do it 
    #Dir.mkdir(nameFolderInServer) unless File.exists?(nameFolderInServer) 
    Dir.glob(pathLocalFolder) do |item| 
    name=File.basename item,'' 
    if File.directory?(name) 
     uploadFolder(pathLocalFolder+'/'+name,name) 
    end 
    if File.file?(name) 
     upload(name,pathLocalFolder,$remote_Path+'/'+nameFolderInServer) 
    end 
    end 
end 
+0

歡迎來到SO。謝謝你改進你的問題 - 你很在乎!這個問題實際上是兩個問題;我發現一個存在的問題可以解決其中的一個問題,所以我將這個問題與該問題聯繫起來。如果您的其他問題(關於net/scp)還沒有在其他地方得到解答,應該單獨詢問您的其他問題。 –

回答

0

使用FileUtils.mkdir_p。沒有必要檢查它是否已經存在,因爲如果給定的目錄已經存在,這個方法什麼也不做。

相關問題