| 105 | } |
| 106 | |
| 107 | private Backuptargetroot getAvalidTarget(long needspace) |
| 108 | { |
| 109 | List<Backuptargetroot> avaliedTarget=new ArrayList<>(); |
| 110 | for (Backuptargetroot backupTargetRoot : BackupTargetRootList) |
| 111 | { |
| 112 | File file=new File(backupTargetRoot.getTagetrootpath()); |
| 113 | backupTargetRoot.setSpaceRemain(file.getFreeSpace()); |
| 114 | if(backupTargetRoot.getSpaceRemain()>needspace) |
| 115 | { |
| 116 | avaliedTarget.add(backupTargetRoot); |
| 117 | //return backupTargetRoot; |
| 118 | } |
| 119 | } |
| 120 | if(avaliedTarget.size()>0) |
| 121 | { |
| 122 | Backuptargetroot backuptargetroot=avaliedTarget.get(0); |
| 123 | for(Backuptargetroot backuptargetroot1:avaliedTarget) |
| 124 | { |
| 125 | if(backuptargetroot1.getSpaceRemain()>backuptargetroot.getSpaceRemain()) |
| 126 | { |
| 127 | backuptargetroot=backuptargetroot1; |
| 128 | } |
| 129 | } |
| 130 | return backuptargetroot; |
| 131 | } |
| 132 | return null; |
| 133 | } |
| 134 | private static void copyFileUsingFileChannels(File source, File dest) throws IOException { |
| 135 | FileChannel inputChannel = null; |
| 136 | FileChannel outputChannel = null; |