2017-12-06 5 views
1

Also ich habe Dateien auf c:\some_folder, die ich in einen Ordner verschieben möchte, der im Pfad c:\Users\my_user\Desktop\hello_shortcut ist, aber eigentlich hello_shortcut ist ein FTP-Ordner. Es hat eine Adresse wie 192.100.xxx.xxx. Wenn ich die Adresse von der Symbolleiste kopiere, erhalte ich etwas wie ftp://some-text:[email protected].Python: Datei in FTP-Ordner-Verknüpfung ohne Anmeldeinformationen verschieben, möglich?

Ich versuchte mit shutil.move und das Ziel als die Verknüpfung hello_shortcut, aber das funktioniert nicht. Obwohl ich Dateien einfach per Drag & Drop in diesen Ordner manuell ziehen kann, und sie werden auf dem Server angezeigt.

Irgendwelche Lösungen zu diesem, außer, die Anmeldeinformationen zu erhalten? Kann ich die Zugangsdaten von Windows selbst beziehen, da ich sie bereits irgendwo gespeichert habe? oder finden Sie vielleicht einen Weg, um Dateien in diesen Shortcut-Ordner zu übertragen?

+0

Was ist der Fehler, den Sie bei 'shuthil.move()' erhalten haben? – MattR

+1

so 'hallo_shortcut' ist ein Ordner oder' .lnk' Verknüpfung? –

+0

@MattR kein Fehler, die Dateien erscheinen einfach nicht im Zielordner. – zerohedge

Antwort

0

Shortcut ist kein Ordner, es ist nur eine Datei, die auf ein Objekt zeigt. Sie können es also nicht als Verzeichnis verwenden, während Sie die Datei verschieben. Wenn sich die Verknüpfung auf das freigegebene ftp-Verzeichnis bezieht, können Sie ihren tatsächlichen Pfad verwenden.

Oder, wenn die Verknüpfung modifiziert werden kann, und Sie können auf dem realen Pfad nicht verlassen, lesen Sie dessen Ziel mit separaten Funktion:

import sys 
import win32com.client 

def get_target(path): 
    shell = win32com.client.Dispatch("WScript.Shell") 
    shortcut = shell.CreateShortCut(path) 
    return shortcut.Targetpath 

get_target("c:\\Users\\my_user\\Desktop\\hello_shortcut.lnk") 

Und dann diesen Weg wie gewohnt mit der Datei zu arbeiten.

+0

Alles, was zurückkommt, ist die gleiche Zeichenfolge, die ich ihm übergebe ...? – zerohedge

+0

"Wenn die Verknüpfung auf das freigegebene FTP-Verzeichnis verweist, können Sie ihren echten Pfad verwenden" - Ich kann Shutfil.move/copy nicht wirklich zu etwas wie "192.168.xxx.xxx" machen, aber, kann ich? – zerohedge

+0

jetzt bin ich mir wirklich nicht sicher, ob ich dich richtig verstehe. Können Sie dieses Code-Fragment bereitstellen? –

Verwandte Themen