[Newbies] File system access in Squeak
Michael van der Gulik
mikevdg at gulik.co.nz
Tue Apr 17 22:45:27 UTC 2007
Navodit Kaushik wrote:
> Hi
>
> Can anyone suggest a good package for file system access? Someone
> suggested Rio but I am not sure how to install it as it does not show
> up in the Package loader...
>
> I want to be able to work with the files on a ftp server and am not
> sure what to use for this. If possible an example script to connect to
> a ftp server and work with the files therein would be really helpful.
> Thanks
>
Hi Navodit.
Sorry that nobody seems to have much advice for what you're trying to
do! What are you trying to do (at a higher level)? Is this commercially
important or one of your own projects? What are the files that you're
trying to move around - perhaps there's a better way of doing it?
Anyway... here's some example code for opening an ftp connection to a
remote server. This only uses classes from the basic Squeak release (in
this case, 3.10):
s := ServerDirectory new.
s fullPath: 'ftp://mikevdg@gulik.co.nz/www'.
s password: 'wachtwoord'.
s openFTPClient.
s directoryNames inspect.
s quit.
To work out how to do this (I've never done it before), I:
1. Opened up a Browser, right-clicked on the categories pane and chose
"find class...", searching for "ftp".
2. Found the "FTPClient class", read the class comment which says to
look in ServerDirectory for examples.
3. Went to the ServerDirectory class, looked at the available methods. I
opened up a workspace and tried a few things.
4. I got an UndefinedObject>>errorNotIndexable error when I tried the
first time to open a connection. I looked at the code in the debugger
and realised that the "newDirName" variable in FTPClient was not set,
probably meaning I also need to set a directory before opening the
connection.
5. I went back to the ServerDirectory Browser, clicked on the "inst
vars" button and realised that there was a "directory" instance
variable. Clicking on that, I saw that it was accessed by "fullPath:".
Reading the comment in that method, I completed my code snippit.
Try running through the same process of discovery, and especially look
at the methods available in the ServerDirectory class. One of the
reasons that Squeak doesn't have much specific documentation is because
once you're familiar with the tools, you find it really doesn't need much!
Michael.
More information about the Beginners
mailing list