How to get the twelve latest file in ftp server using ftp client in JAVA
我想使用 FTP 客户端读取 FTP 服务器中的 12 个 12 个最新的 XML 文件,但我只得到最新的和最后一个。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | public static void main(String[] args) throws IOException { FTPClient client = new FTPClient(); try { client.connect(host); client.login(user, pwd); FTPFile[] files = client.listFiles(); FTPFile lastFile = lastFileModified(files); System.out.println(lastFile.getName()); client.disconnect(); } catch (SocketException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public static FTPFile lastFileModified(FTPFile[] files) { Date lastMod = files[0].getTimestamp().getTime(); FTPFile choice = null; for (FTPFile file : files) { if (file.getTimestamp().getTime().after(lastMod)) { choice = file; lastMod = file.getTimestamp().getTime(); } } return choice; } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 | Connection Success /AGIN/20150616 201506152344.xml /AGIN/20150616 201506152348.xml /AGIN/20150616 201506152352.xml /AGIN/20150616 201506152356.xml /AGIN/20150616 201506160000.xml /AGIN/20150616 201506160004.xml /AGIN/20150616 201506160008.xml /AGIN/20150616 201506160012.xml /AGIN/20150616 201506160016.xml /AGIN/20150616 201506160020.xml /AGIN/20150616 201506160024.xml /AGIN/20150616 201506160028.xml /AGIN/20150616 201506160032.xml /AGIN/20150616 201506160036.xml /AGIN/20150616 201506160040.xml /AGIN/20150616 201506160044.xml /AGIN/20150616 201506160048.xml /AGIN/20150616 201506160052.xml /AGIN/20150616 201506160056.xml /AGIN/20150616 201506160100.xml /AGIN/20150616 201506160104.xml /AGIN/20150616 201506160108.xml /AGIN/20150616 201506160112.xml /AGIN/20150616 201506160116.xml /AGIN/20150616 201506160120.xml /AGIN/20150616 201506160124.xml /AGIN/20150616 201506160128.xml /AGIN/20150616 201506160132.xml /AGIN/20150616 201506160136.xml /AGIN/20150616 201506160140.xml /AGIN/20150616 201506160144.xml /AGIN/20150616 201506160148.xml /AGIN/20150616 201506160152.xml /AGIN/20150616 201506160156.xml /AGIN/20150616 201506160200.xml /AGIN/20150616 201506160204.xml /AGIN/20150616 201506160208.xml /AGIN/20150616 201506160212.xml /AGIN/20150616 201506160216.xml /AGIN/20150616 201506160220.xml /AGIN/20150616 201506160224.xml /AGIN/20150616 201506160228.xml /AGIN/20150616 201506160232.xml /AGIN/20150616 201506160236.xml /AGIN/20150616 201506160240.xml /AGIN/20150616 201506160244.xml /AGIN/20150616 201506160248.xml /AGIN/20150616 201506160252.xml /AGIN/20150616 201506160256.xml /AGIN/20150616 201506160300.xml /AGIN/20150616 201506160304.xml /AGIN/20150616 201506160308.xml /AGIN/20150616 201506160312.xml /AGIN/20150616 201506160316.xml /AGIN/20150616 201506160320.xml /AGIN/20150616 201506160324.xml /AGIN/20150616 201506160328.xml /AGIN/20150616 201506160332.xml /AGIN/20150616 201506160336.xml /AGIN/20150616 201506160340.xml /AGIN/20150616 201506160344.xml /AGIN/20150616 201506160348.xml /AGIN/20150616 201506160352.xml /AGIN/20150616 201506160356.xml /AGIN/20150616 201506160400.xml /AGIN/20150616 201506160404.xml /AGIN/20150616 201506160408.xml /AGIN/20150616 201506160412.xml /AGIN/20150616 201506160416.xml /AGIN/20150616 201506160420.xml /AGIN/20150616 201506160424.xml /AGIN/20150616 201506160428.xml /AGIN/20150616 201506160432.xml /AGIN/20150616 201506160436.xml /AGIN/20150616 201506160440.xml /AGIN/20150616 201506160444.xml /AGIN/20150616 201506160448.xml /AGIN/20150616 201506160452.xml /AGIN/20150616 201506160456.xml /AGIN/20150616 201506160500.xml /AGIN/20150616 201506160504.xml /AGIN/20150616 201506160508.xml /AGIN/20150616 201506160512.xml /AGIN/20150616 201506160516.xml /AGIN/20150616 201506160520.xml /AGIN/20150616 201506160524.xml /AGIN/20150616 201506160528.xml /AGIN/20150616 201506160532.xml /AGIN/20150616 201506160536.xml /AGIN/20150616 201506160540.xml /AGIN/20150616 201506160544.xml /AGIN/20150616 201506160548.xml /AGIN/20150616 201506160552.xml /AGIN/20150616 201506160556.xml /AGIN/20150616 201506160600.xml /AGIN/20150616 201506160604.xml /AGIN/20150616 201506160608.xml /AGIN/20150616 201506160612.xml /AGIN/20150616 201506160616.xml /AGIN/20150616 201506160620.xml /AGIN/20150616 201506160624.xml /AGIN/20150616 201506160628.xml /AGIN/20150616 201506160632.xml /AGIN/20150616 201506160636.xml /AGIN/20150616 201506160640.xml /AGIN/20150616 201506160644.xml /AGIN/20150616 201506160648.xml /AGIN/20150616 201506160652.xml /AGIN/20150616 201506160656.xml /AGIN/20150616 201506160700.xml /AGIN/20150616 201506160704.xml /AGIN/20150616 201506160708.xml /AGIN/20150616 201506160712.xml /AGIN/20150616 201506160716.xml /AGIN/20150616 201506160720.xml /AGIN/20150616 201506160724.xml /AGIN/20150616 201506160728.xml /AGIN/20150616 201506160732.xml /AGIN/20150616 201506160736.xml /AGIN/20150616 201506160740.xml /AGIN/20150616 201506160744.xml /AGIN/20150616 201506160748.xml /AGIN/20150616 201506160752.xml /AGIN/20150616 201506160756.xml /AGIN/20150616 201506160800.xml /AGIN/20150616 201506160804.xml /AGIN/20150616 201506160808.xml /AGIN/20150616 201506160812.xml /AGIN/20150616 201506160816.xml /AGIN/20150616 201506160820.xml /AGIN/20150616 201506160824.xml /AGIN/20150616 201506160828.xml /AGIN/20150616 201506160832.xml /AGIN/20150616 201506160836.xml /AGIN/20150616 201506160840.xml /AGIN/20150616 201506160844.xml /AGIN/20150616 201506160848.xml /AGIN/20150616 201506160852.xml /AGIN/20150616 201506160856.xml /AGIN/20150616 201506160900.xml /AGIN/20150616 201506160904.xml /AGIN/20150616 201506160908.xml /AGIN/20150616 201506160912.xml /AGIN/20150616 201506160916.xml /AGIN/20150616 201506160920.xml /AGIN/20150616 201506160924.xml /AGIN/20150616 201506160928.xml /AGIN/20150616 201506160932.xml /AGIN/20150616 201506160936.xml /AGIN/20150616 201506160940.xml /AGIN/20150616 201506160944.xml /AGIN/20150616 201506160948.xml /AGIN/20150616 201506160952.xml /AGIN/20150616 201506160956.xml /AGIN/20150616 201506161000.xml /AGIN/20150616 201506161004.xml /AGIN/20150616 201506161008.xml /AGIN/20150616 201506161012.xml /AGIN/20150616 201506161016.xml /AGIN/20150616 201506161020.xml /AGIN/20150616 201506161024.xml /AGIN/20150616 201506161028.xml /AGIN/20150616 201506161032.xml /AGIN/20150616 201506161036.xml /AGIN/20150616 201506161040.xml /AGIN/20150616 201506161044.xml /AGIN/20150616 201506161048.xml /AGIN/20150616 201506161052.xml /AGIN/20150616 201506161056.xml /AGIN/20150616 201506161100.xml /AGIN/20150616 201506161104.xml /AGIN/20150616 201506161108.xml /AGIN/20150616 201506161112.xml /AGIN/20150616 201506161116.xml /AGIN/20150616 201506161120.xml /AGIN/20150616 201506161124.xml /AGIN/20150616 201506161128.xml /AGIN/20150616 201506161132.xml /AGIN/20150616 201506161136.xml /AGIN/20150616 201506161140.xml /AGIN/20150616 201506161144.xml /AGIN/20150616 201506161148.xml /AGIN/20150616 201506161152.xml /AGIN/20150616 201506161156.xml /AGIN/20150616 201506161200.xml /AGIN/20150616 201506161204.xml /AGIN/20150616 201506161208.xml /AGIN/20150616 201506161212.xml /AGIN/20150616 201506161216.xml /AGIN/20150616 201506161220.xml /AGIN/20150616 201506161224.xml /AGIN/20150616 201506161228.xml /AGIN/20150616 201506161232.xml /AGIN/20150616 201506161236.xml /AGIN/20150616 201506161240.xml /AGIN/20150616 201506161244.xml /AGIN/20150616 201506161248.xml /AGIN/20150616 201506161252.xml /AGIN/20150616 201506161256.xml /AGIN/20150616 201506161300.xml /AGIN/20150616 201506161304.xml /AGIN/20150616 201506161308.xml /AGIN/20150616 201506161312.xml /AGIN/20150616 201506161316.xml /AGIN/20150616 201506161320.xml /AGIN/20150616 201506161324.xml /AGIN/20150616 201506161328.xml /AGIN/20150616 201506161332.xml /AGIN/20150616 201506161336.xml /AGIN/20150616 201506161340.xml /AGIN/20150616 201506161344.xml /AGIN/20150616 201506161348.xml /AGIN/20150616 201506161352.xml /AGIN/20150616 201506161356.xml /AGIN/20150616 201506161400.xml /AGIN/20150616 201506161404.xml /AGIN/20150616 201506161408.xml /AGIN/20150616 201506161412.xml /AGIN/20150616 201506161416.xml /AGIN/20150616 201506161420.xml /AGIN/20150616 201506161424.xml /AGIN/20150616 201506161428.xml /AGIN/20150616 201506161432.xml /AGIN/20150616 201506161436.xml /AGIN/20150616 201506161440.xml /AGIN/20150616 201506161444.xml /AGIN/20150616 201506161448.xml /AGIN/20150616 201506161452.xml /AGIN/20150616 201506161456.xml /AGIN/20150616 201506161500.xml /AGIN/20150616 201506161504.xml /AGIN/20150616 201506161508.xml /AGIN/20150616 201506161512.xml /AGIN/20150616 201506161516.xml /AGIN/20150616 201506161520.xml /AGIN/20150616 201506161524.xml /AGIN/20150616 201506161528.xml /AGIN/20150616 201506161532.xml /AGIN/20150616 201506161536.xml /AGIN/20150616 201506161540.xml /AGIN/20150616 201506161544.xml /AGIN/20150616 201506161548.xml /AGIN/20150616 201506161552.xml /AGIN/20150616 201506161556.xml /AGIN/20150616 201506161600.xml /AGIN/20150616 201506161604.xml /AGIN/20150616 201506161608.xml /AGIN/20150616 201506161612.xml /AGIN/20150616 201506161616.xml /AGIN/20150616 201506161620.xml /AGIN/20150616 201506161624.xml /AGIN/20150616 201506161628.xml /AGIN/20150616 201506161632.xml /AGIN/20150616 201506161636.xml /AGIN/20150616 201506161640.xml /AGIN/20150616 201506161644.xml /AGIN/20150616 201506161648.xml /AGIN/20150616 201506161652.xml /AGIN/20150616 201506161656.xml /AGIN/20150616 201506161700.xml /AGIN/20150616 201506161704.xml /AGIN/20150616 201506161708.xml /AGIN/20150616 201506161712.xml /AGIN/20150616 201506161716.xml /AGIN/20150616 201506161720.xml /AGIN/20150616 201506161724.xml /AGIN/20150616 201506161728.xml /AGIN/20150616 201506161732.xml /AGIN/20150616 201506161736.xml /AGIN/20150616 201506161740.xml /AGIN/20150616 201506161744.xml /AGIN/20150616 201506161748.xml /AGIN/20150616 201506161752.xml /AGIN/20150616 201506161756.xml /AGIN/20150616 201506161800.xml /AGIN/20150616 201506161804.xml /AGIN/20150616 201506161808.xml /AGIN/20150616 201506161812.xml /AGIN/20150616 201506161816.xml /AGIN/20150616 201506161820.xml /AGIN/20150616 201506161824.xml /AGIN/20150616 201506161828.xml /AGIN/20150616 201506161832.xml /AGIN/20150616 201506161836.xml /AGIN/20150616 201506161840.xml /AGIN/20150616 201506161844.xml /AGIN/20150616 201506161848.xml /AGIN/20150616 201506161852.xml /AGIN/20150616 201506161856.xml /AGIN/20150616 201506161900.xml /AGIN/20150616 201506161904.xml /AGIN/20150616 201506161908.xml /AGIN/20150616 201506161912.xml /AGIN/20150616 201506161916.xml /AGIN/20150616 201506161920.xml /AGIN/20150616 201506161924.xml /AGIN/20150616 201506161928.xml /AGIN/20150616 201506161932.xml /AGIN/20150616 201506161936.xml /AGIN/20150616 201506161940.xml /AGIN/20150616 201506161944.xml /AGIN/20150616 201506161948.xml /AGIN/20150616 201506161952.xml /AGIN/20150616 201506161956.xml /AGIN/20150616 201506162000.xml /AGIN/20150616 201506162004.xml /AGIN/20150616 201506162008.xml /AGIN/20150616 201506162012.xml /AGIN/20150616 201506162016.xml /AGIN/20150616 201506162020.xml /AGIN/20150616 201506162024.xml /AGIN/20150616 201506162028.xml /AGIN/20150616 201506162032.xml /AGIN/20150616 201506162036.xml /AGIN/20150616 201506162040.xml /AGIN/20150616 201506162044.xml /AGIN/20150616 201506162048.xml /AGIN/20150616 201506162052.xml /AGIN/20150616 201506162056.xml /AGIN/20150616 201506162100.xml /AGIN/20150616 201506162104.xml /AGIN/20150616 201506162108.xml /AGIN/20150616 201506162112.xml /AGIN/20150616 201506162116.xml /AGIN/20150616 201506162120.xml /AGIN/20150616 201506162124.xml /AGIN/20150616 201506162128.xml /AGIN/20150616 201506162132.xml /AGIN/20150616 201506162136.xml /AGIN/20150616 201506162140.xml /AGIN/20150616 201506162144.xml /AGIN/20150616 201506162148.xml /AGIN/20150616 201506162152.xml /AGIN/20150616 201506162156.xml /AGIN/20150616 201506162200.xml /AGIN/20150616 201506162204.xml /AGIN/20150616 201506162208.xml /AGIN/20150616 201506162212.xml /AGIN/20150616 201506162216.xml /AGIN/20150616 201506162220.xml /AGIN/20150616 201506162224.xml /AGIN/20150616 201506162228.xml /AGIN/20150616 201506162232.xml /AGIN/20150616 201506162236.xml /AGIN/20150616 201506162240.xml /AGIN/20150616 201506162244.xml /AGIN/20150616 201506162248.xml /AGIN/20150616 201506162252.xml /AGIN/20150616 201506162256.xml /AGIN/20150616 201506162300.xml /AGIN/20150616 201506162304.xml /AGIN/20150616 201506162308.xml /AGIN/20150616 201506162312.xml /AGIN/20150616 201506162316.xml /AGIN/20150616 201506162320.xml /AGIN/20150616 201506162324.xml /AGIN/20150616 201506162328.xml /AGIN/20150616 201506162332.xml /AGIN/20150616 201506162336.xml /AGIN/20150616 201506162340.xml /AGIN/20150616 201506162344.xml /AGIN/20150616 201506162348.xml /AGIN/20150616 201506162352.xml /AGIN/20150616 201506162356.xml /AGIN/20150616 201506170000.xml **/AGIN/20150616 201506170004.xml /AGIN/20150616 LATEST XML FILE 201506170004.xml** /AGIN/lostAndfound/20150616 201506160536.xml /AGIN/lostAndfound/20150616 201506160552.xml /AGIN/lostAndfound/20150616 201506160608.xml /AGIN/lostAndfound/20150616 201506160624.xml Connection close |
为自己创建一个类似
的比较器
1 2 3 4 5 6 | public class ModifiedComparator implements Comparator<FTPFile> { public int compare(FTPFile leftFile, FTPFile rightFile) { return leftFile.getTimestamp().compareTo(rightFile.getTimeStamp()); } } |
从这里你有一个有序列表
您可以从列表中获取最后/前十二个项目。根据您提供的订单
1 2 |
编辑
1 2 3 4 5 6 7 8 9 | public class LastModifiedComparator implements Comparator<FTPFile> { public int compare(FTPFile leftFile, FTPFile rightFile) { return -leftFile.getTimestamp().compareTo(rightFile.getTimeStamp()); } } List<FTPFile> list = Arrays.asList(files); Collections.sort(list, new LastModifiedComparator()); |
你可以使用这个方法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | private List<FTPFile> getLastNoOfFiles(List<FTPFile> files, int noOfFilesToGet) { List<FTPFile> latestFiles = new ArrayList<FTPFile>(); int index = 1; for (FTPFile file : files) { if (noOfFilesToGet < index) { break; } latestFiles.add(file); index ++; } return latestFiles; } |