 |
Changeset 3383
- Timestamp:
- 03/20/08 18:44:36
(9 months ago)
- Author:
- lmartin92
- Message:
Finally finished the new version of FtpFolder?. Testing will be underway. Then a rewrite of FtpClient?.d..........
-
Files:
-
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
| r3382 |
r3383 |
|
| 9 | 9 | import tango.io.vfs.model.Vfs; |
|---|
| 10 | 10 | import tango.io.Conduit; |
|---|
| | 11 | import tango.text.Util; |
|---|
| 11 | 12 | |
|---|
| 12 | 13 | class FtpFolderEntry: VfsFolderEntry { |
|---|
| … | … | |
| 375 | 376 | VfsFilter ffilter_; |
|---|
| 376 | 377 | bool useFilter_ = false; |
|---|
| | 378 | bool doFilter_ = true; |
|---|
| 377 | 379 | |
|---|
| 378 | 380 | public this(char[] server, char[] path, char[] username = "anonymous", |
|---|
| … | … | |
| 392 | 394 | port_ = port; |
|---|
| 393 | 395 | filter_ = filtPattern; |
|---|
| | 396 | |
|---|
| 394 | 397 | useFilter_ = true; |
|---|
| 395 | 398 | } |
|---|
| … | … | |
| 414 | 417 | |
|---|
| 415 | 418 | int opApply(int delegate(inout VfsFile) dg) { |
|---|
| 416 | | return null; |
|---|
| | 419 | int result; |
|---|
| | 420 | foreach(FtpFileInfo inf; getFileInfo()) { |
|---|
| | 421 | FtpFile x = new FtpFile(toString_, inf.name, username_, password_, |
|---|
| | 422 | port); |
|---|
| | 423 | if((result = dg(x)) != 0) |
|---|
| | 424 | break; |
|---|
| | 425 | } |
|---|
| | 426 | return result; |
|---|
| | 427 | } |
|---|
| | 428 | |
|---|
| | 429 | FtpFileInfo[] getFileInfo() { |
|---|
| | 430 | ftp_ = new FTPConnection(); |
|---|
| | 431 | ftp_.connect(toString_, username_, password_, port_); |
|---|
| | 432 | scope(exit) { |
|---|
| | 433 | ftp_.close(); |
|---|
| | 434 | } |
|---|
| | 435 | if(doFilter_) { |
|---|
| | 436 | FtpFileInfo[] infs = ftp_.ls(); |
|---|
| | 437 | FtpFileInfo[] toReturn; |
|---|
| | 438 | if(useFilter) { |
|---|
| | 439 | foreach(FtpFileInfo inf; infs) { |
|---|
| | 440 | if(contains(inf.name, filter_)) { |
|---|
| | 441 | toReturn ~= inf; |
|---|
| | 442 | } |
|---|
| | 443 | } |
|---|
| | 444 | } else { |
|---|
| | 445 | VfsFilterInfo[] toUse; |
|---|
| | 446 | foreach(FtpFileInfo inf; infs) { |
|---|
| | 447 | VfsFilterInfo temp; |
|---|
| | 448 | temp.name = inf.name; |
|---|
| | 449 | temp.folder = toString_; |
|---|
| | 450 | temp.path = toString_ ~ temp.name; |
|---|
| | 451 | temp.bytes = inf.size; |
|---|
| | 452 | toUse ~= temp; |
|---|
| | 453 | } |
|---|
| | 454 | foreach(VfsFilterInfo inf; toUse) { |
|---|
| | 455 | if(ffilter_(&inf)) { |
|---|
| | 456 | FtpFileInfo temp; |
|---|
| | 457 | temp.name = inf.name; |
|---|
| | 458 | toReturn ~= temp; |
|---|
| | 459 | } |
|---|
| | 460 | } |
|---|
| | 461 | } |
|---|
| | 462 | return toReturn; |
|---|
| | 463 | } else |
|---|
| | 464 | return ftp_.ls(); |
|---|
| 417 | 465 | } |
|---|
| 418 | 466 | |
|---|
| 419 | 467 | uint files() { |
|---|
| 420 | | return null; |
|---|
| | 468 | return getFileInfo().length; |
|---|
| 421 | 469 | } |
|---|
| 422 | 470 | |
|---|
| 423 | 471 | ulong bytes() { |
|---|
| 424 | | return null; |
|---|
| | 472 | ulong result; |
|---|
| | 473 | foreach(FtpFileInfo inf; getFileInfo()) { |
|---|
| | 474 | result += inf.size; |
|---|
| | 475 | } |
|---|
| | 476 | return result; |
|---|
| 425 | 477 | } |
|---|
| 426 | 478 | } |
|---|
Download in other formats:
|
 |
 |
|
 |
Copyright © 2006-2008 Tango. All Rights Reserved. | Page Width:
Static or
Dynamic