FTP-Netzlaufwerk

Windowsspezifisches Forum , API ,..
Beiträge, die plattformübergreifend sind, gehören ins 'Allgemein'-Forum.
Benutzeravatar
uweb
Beiträge: 461
Registriert: 13.07.2005 08:39

FTP-Netzlaufwerk

Beitrag von uweb »

Was geht :
Wenn ich auf meinem PC in FileZilla-Server
anonymous mit Leserecht und
user mit Schreib-Leserecht anlege
kann ich im Explorer via "Netzlaufwerk verbinden"
zwei entsprechende Netzweradressen (FTP-anonymous und FTP-user) anlegen und nutzen.
Mit den folgenden Codes kann ich (über beide Adressen !) scheinbar dort eine Textdatei erzeugen bzw lesen.

Code: Alles auswählen

Name.s ="user"
;Name.s ="anonymous"
Debug Name

If FileSize(GetHomeDirectory()+"AppData\Roaming\Microsoft\Windows\Network Shortcuts\FTP-"+Name+"\Text.txt")
  Debug DeleteFile(GetHomeDirectory()+"AppData\Roaming\Microsoft\Windows\Network Shortcuts\FTP-"+Name+"\Text.txt")
EndIf


If CreateFile(0, GetHomeDirectory()+"AppData\Roaming\Microsoft\Windows\Network Shortcuts\FTP-"+Name+"\Text.txt")
  WriteStringN(0, "In Test.txt kann offensichtlich geschrieben werden.")
  CloseFile(0)
Else
  MessageRequester("Information","Konnte Datei nicht erstellen!")
EndIf

Code: Alles auswählen

Name.s ="user"
Name.s ="anonymous"
;Name.s ="anonymous-Link"
If ReadFile(0, GetHomeDirectory()+"AppData\Roaming\Microsoft\Windows\Network Shortcuts\FTP-"+Name+"\Text.txt")
  While Eof(0) = 0
    Debug ReadString(0)
  Wend
  CloseFile(0)
Else
  MessageRequester("Information","Konnte Verzeichnis nicht öffnen!")
EndIf
Was nicht geht :
Ich sehe die Textdatei nicht wenn ich sie z.B. über den Explorer öffnen möchte.
Löschen kann nur user - eigentlich sollte anonymous erst gar nicht schreiben können.

Man könnte das ja als prima Möglichkeit sehen Daten versteckt zu speichern.
Mir wäre es aber lieber wenn andere Programme auch Zugriff auf die Datei hätten.

edit :

Damit sehe ich zwar die Textdatei. Dafür fehlen mir die Dateien die bereits auf dem FTP-Server lagen.

Code: Alles auswählen

Name.s ="user"
Name.s ="anonymous"
Directory$ = GetHomeDirectory()+"AppData\Roaming\Microsoft\Windows\Network Shortcuts\FTP-"+Name+"\"
If ExamineDirectory(0, Directory$, "*.*")  
  While NextDirectoryEntry(0)
    If DirectoryEntryType(0) = #PB_DirectoryEntry_File
      Type$ = "[File] "
      Size$ = " (Size: " + DirectoryEntrySize(0) + ")"
    Else
      Type$ = "[Directory] "
      Size$ = "" ; A directory doesn't have a size
    EndIf
    
    Debug Type$ + DirectoryEntryName(0) + Size$
  Wend
  FinishDirectory(0)
Else
  MessageRequester("Information","Konnte Verzeichnis nicht öffnen!")
EndIf
Mir ist schon klar, dass es vermutlich daran liegt, dass MS mir hier nur ein Mapping vorgaukelt.
Die Frage ist halt, ob es noch irgendwelche Schalter gibt die mehr zulassen.

Perfekt wäre ein Laufwerksbuchstabe ohne erst etwas wie z.B. bei NetDrive installieren zu müssen.

edit
Code verschönert.
Zuletzt geändert von uweb am 06.07.2015 16:47, insgesamt 1-mal geändert.
Benutzeravatar
mhs
Beiträge: 224
Registriert: 11.01.2009 16:30
Wohnort: Graben
Kontaktdaten:

Re: FTP-Netzlaufwerk

Beitrag von mhs »

Ich vermute, dass es an der Microsoft Implementierung liegt und vielleicht keine richtige Trennung zwischen den zwei Laufwerken stattfindet.

Probier doch mal folgendes aus:

Erstell nur das Leselaufwerk für den anonymous und schau, ob du trotzdem noch Schreibzugriff hast. Wenn nicht, dann trennt Microsoft an der Stelle die Rechte zwischen der Laufwerken nicht. Solltest du aber trotzdem noch Schreibzugriff haben, würde ich den Server überprüfen, weil dann stimmt vermutlich dort etwas nicht.

Was spricht dagegen die FTP Verbindung über die FTP Funktionen von PB zu realisieren (außer dem fehlenden SSL natürlich...)?
Michael Hack

Michael Hack Software :: Softwareentwicklung | Webentwicklung | IT-Dienstleistungen
www.michaelhacksoftware.de :: www.mh-s.de :: www.michael-hack.de
Benutzeravatar
uweb
Beiträge: 461
Registriert: 13.07.2005 08:39

Re: FTP-Netzlaufwerk

Beitrag von uweb »

Danke für die Antwort!

Die beiden Netzweradressen (FTP-anonymous und FTP-user) lassen sich außerhalb von PB so nutzen wie es sein soll.
Schreibrecht hat also nur FTP-user.

Wie auch mein Nachtrag oben zeigt greife ich offensichtlich gar nicht auf die Netzweradressen zu sonder irgendwo hin.

FTP über Netzweradresse statt einfach nur FTP ist ein Versuch mit Windows Bordmitteln (also möglichst ohne NetDrive o.ä.)
eine Art virtuelles Laufwerk zu erzeugen auf das andere Programme zugreifen können.

Im Prinzip habe ich das ja schon.
Ein programmgesteuertes Hinzufügen der Netzweradresse habe ich zwar noch nicht - das muss z.Zt. noch manuell gemacht werden.
Aber die Grundfunktion ist ja da. (Übrigens funktionieren die Beispiele mit Verknüpfungen nicht. Es müssen schon Netzweradressen sein.)

Es gibt also "außer dem fehlenden SSL" keinen Grund nicht über FTP-Kommandos zu arbeiten.
>>> Ich frage mich nur was bei den Beispielen passiert und ob es einen bessere Lösungweg eröffnet.
Antworten