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
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
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.