Changeset 2108 for trunk/eraser
- Timestamp:
- 5/15/2010 4:37:21 AM (3 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/eraser/Eraser.DefaultPlugins/ErasureTargets/SecureMoveErasureTarget.cs
r2107 r2108 97 97 return result; 98 98 99 FileInfo[] files = null; 99 100 if ((File.GetAttributes(Path) & FileAttributes.Directory) == 0) 101 files = new FileInfo[] { new FileInfo(Path) }; 102 else 103 files = GetFiles(new DirectoryInfo(Path)); 104 105 foreach (FileInfo info in files) 100 106 { 101 FileInfo info = new FileInfo(Path);102 103 107 //Add the alternate data streams 104 108 result.AddRange(GetPathADSes(info)); … … 106 110 //And the file itself 107 111 result.Add(new StreamInfo(info.FullName)); 108 }109 else110 {111 112 112 } 113 113 … … 138 138 CopyFile(info); 139 139 } 140 141 //Then erase the source paths.142 base.Execute();143 140 } 144 141 finally … … 179 176 180 177 //We need to erase the partially copied copy of the file. 181 Task task = new Task(); 182 FileErasureTarget fileTarget = new FileErasureTarget(); 183 fileTarget.Path = Destination; 184 task.Targets.Add(fileTarget); 178 FileInfo copiedFile = new FileInfo(Destination); 179 List<StreamInfo> streams = new List<StreamInfo>( 180 copiedFile.GetADSes().Select(x => new StreamInfo(copiedFile.FullName, x)); 181 streams.Add(new StreamInfo(copiedFile.FullName)); 182 long totalSize = streams.Sum(x => x.Length); 185 183 186 Progress.Steps.Add(new SteppedProgressManagerStep(task.Progress, 0.5f, 187 S._("Erasing incomplete destination file"))); 188 task.ProgressChanged += delegate(object sender, ProgressChangedEventArgs e) 189 { 190 OnProgressChanged(this, new ProgressChangedEventArgs(Progress, 191 e.UserState)); 192 }; 193 194 fileTarget.Execute(); 184 foreach (StreamInfo stream in streams) 185 { 186 ProgressManager destroyProgress = new ProgressManager(); 187 Progress.Steps.Add(new SteppedProgressManagerStep(destroyProgress, 188 0.5f * stream.Length / totalSize, 189 S._("Erasing incomplete destination file"))); 190 EraseStream(stream, destroyProgress); 191 } 195 192 196 193 //Rethrow the exception.
Note: See TracChangeset
for help on using the changeset viewer.
