2016-08-01 18 views
-4

Ich schreibe ein Skript zum Hochladen eines Ordners von Client zu Server mit dem Modul net/scp, aber ich weiß nicht, um einen neuen Ordner automatisch mit Ruby zu erstellen, wenn es nicht bereits auf dem Server existiert. Wie kann ich es tun? Und wie kann ich ein beliebiges Ruby-Skript auf dem Server mit net/scp ausführen?Wie erstelle ich einen Ordner auf einem Server in Ruby?

Dies ist der Code, den ich bisher habe:

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

Willkommen bei SO. Vielen Dank für die Verbesserung Ihrer Frage - es ist toll, dass Sie sich darum kümmern! Diese Frage ist wirklich zwei Fragen; Ich habe eine bestehende Frage gefunden, die auf eine von ihnen antwortet, also habe ich diese Frage mit dieser verknüpft. Deine andere Frage (über net/scp) sollte separat gefragt werden, wenn sie nicht bereits an anderer Stelle beantwortet wird. –

Antwort

0

Verwendung FileUtils.mkdir_p. Es muss nicht überprüft werden, ob es bereits existiert, da diese Methode nichts unternimmt, wenn das angegebene Verzeichnis bereits existiert.

Verwandte Themen