Download Reference Manual
The Developer's Library for D
About Wiki Forums Source Search Contact

Changeset 3369

Show
Ignore:
Timestamp:
03/16/08 08:25:01 (9 months ago)
Author:
lmartin92
Message:

Have to fix stuff in FtpFolder?.d

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • branches/lmartin/ftp/tango/io/vfs/FtpFolder.d

    r3357 r3369  
    3434//imports things to deal with text 
    3535private import tango.text.Util; 
     36 
     37import tango.io.Console; 
    3638 
    3739/******************************************************************************* 
     
    5658    package this (FtpFolder fol) 
    5759    { 
    58        _name = fol._name.dup; 
     60        _name = fol._name.dup; 
    5961        _toString = fol._toString.dup; 
    6062        _server = fol._server.dup; 
     
    7678        assert((server != null || server != "")); 
    7779    } 
    78     out 
    79     { 
    80         assert((! server || ! _name || ! _toString || ! _username || ! _password || ! _port || ! _ftp)); 
    81     } 
    8280    body 
    8381    { 
     
    8987        _port       = port; 
    9088        _ftp        = new FTPConnection(_server, _username, _password, _port); 
    91         _ftp.cd(_name); 
     89        if(_name != "") 
     90            _ftp.cd(_name); 
    9291    } 
    9392     
     
    9796 
    9897    ***********************************************************************/ 
     98 
     99    package void open() 
     100    { 
     101        _ftp.connect(_server, _username, _password, _port); 
     102    } 
    99103 
    100104    char[] name() 
     
    275279*******************************************************************************/ 
    276280  
    277  
    278281 class FtpFolders : VfsFolders 
    279282{ 
     
    287290        foreach(folder; fols) 
    288291        { 
    289             _primaryFolders ~= new FtpFolder(folder); 
    290         } 
     292            _primaryFolders ~= folder; 
     293        } 
     294        Cout("Doesn't work?").newline.flush; 
    291295        populateFolders(false); 
    292296    } 
     
    294298    package this(FtpFolder fol, bool flat) 
    295299    { 
    296         _primaryFolders ~= new FtpFolder(fol)
     300        _primaryFolders ~= fol
    297301        _flat = flat; 
    298302        populateFolders(false); 
     
    342346                if(finf.type == FtpFileType.cdir || finf.type == FtpFileType.dir) 
    343347                { 
    344                     _folders ~= new FtpFolder(finf.name, "", _ftpFol._username, _ftpFol._password, _ftpFol._port); 
    345                     redo = true; 
    346                 } 
     348                    _folders ~= new FtpFolder(_ftpFol.toString ~ '/' ~ finf.name, "", _ftpFol._username, _ftpFol._password, _ftpFol._port);             } 
    347349            } 
    348350        } 
     
    512514            { 
    513515                FtpFile f = cast(FtpFile) file; 
    514                 if(filter(f._filt)) 
     516                if(filter(&f._filt)) 
    515517                    toCreateNewVfsFilesInstance ~= file; 
    516518            } 
     
    526528*******************************************************************************/ 
    527529 
    528  
    529530 class FtpFile : VfsFile 
    530531{ 
     
    538539    char[] _toString; 
    539540    char[] _name; 
    540     VfsInfo _filt; 
     541    VfsFilterInfo _filt; 
    541542 
    542543    package this(FtpFolder fol, char[] path) 
    543544    { 
    544         _name = path[locatePrior(path, '/', cast(int)path.length) > locatePrior(path, '\\', path.length) && locatePrior(path, '/', path.length) != path.length ? locatePrior(path, '/', path.length) : locatePrior(path, '\\', path.length) .. $]
     545        _name ='/' ~ path
    545546        _toString = fol.toString ~ path; 
    546         _folder = new FtpFolder(fol); 
     547        //_folder = new FtpFolder(fol); 
     548        _folder = fol; 
    547549        _filt.name = _name; 
    548550        _filt.path = _toString; 
     
    550552        try 
    551553        { 
    552             _filt.bytes = _folder._ftp.getFileInfo(_toString).size; 
     554            _filt.bytes = _folder._ftp.getFileInfo(path).size; 
    553555        } 
    554556        catch(Exception e) 
    555557        { 
    556             _filt.bytes = 0; 
     558            _filt.bytes = 0; 
    557559        } 
    558560    } 
     
    655657        src ~= cast(byte)1; 
    656658        fs.write(src); 
    657         return create(fs); //needs to replace null with an empty stream 
     659        return create(fs);  
    658660    } 
    659661 
     
    728730*******************************************************************************/ 
    729731  
    730  
    731732class FtpFiles : VfsFiles 
    732733{ 
     
    743744        foreach(folder; folders) 
    744745        { 
    745             _folders ~= new FtpFolder(folder)
     746            _folders ~= cast(FtpFolder)folder
    746747        } 
    747748        populateFiles(); 
     
    840841*******************************************************************************/ 
    841842 
    842  
    843843class FtpFolderEntry : VfsFolderEntry 
    844844{ 
     
    852852    package this(FtpFolder fol, char[] path) 
    853853    { 
    854         _folder = new FtpFolder(fol); 
     854        //_folder = new FtpFolder(fol); 
     855        _folder = fol; 
    855856    } 
    856857 
     
    872873    VfsFolder open () 
    873874    { 
    874         return new FtpFolder(_folder); 
     875        //return new FtpFolder(_folder); 
     876        _folder.open(); 
     877        return _folder; 
    875878    } 
    876879 
     
    884887    { 
    885888        _folder._ftp.mkdir(_folder.toString); 
    886         return new FtpFolder(_folder)
     889        return _folder
    887890    } 
    888891