Changeset 2036
- Timestamp:
- 5/4/2010 1:20:40 AM (3 years ago)
- Location:
- trunk/eraser
- Files:
-
- 2 added
- 16 edited
- 9 moved
-
Eraser.DefaultPlugins/Eraser.DefaultPlugins.csproj (modified) (2 diffs)
-
Eraser.DefaultPlugins/ErasureTargets (added)
-
Eraser.DefaultPlugins/ErasureTargets/File.cs (added)
-
Eraser.DefaultPlugins/ErasureTargets/FileErasureTargetSettings.Designer.cs (moved) (moved from trunk/eraser/Eraser.Manager/FileErasureTargetSettings.Designer.cs) (1 diff)
-
Eraser.DefaultPlugins/ErasureTargets/FileErasureTargetSettings.cs (moved) (moved from trunk/eraser/Eraser.Manager/FileErasureTargetSettings.cs) (1 diff)
-
Eraser.DefaultPlugins/ErasureTargets/FileErasureTargetSettings.resx (moved) (moved from trunk/eraser/Eraser.Manager/FileErasureTargetSettings.resx)
-
Eraser.DefaultPlugins/ErasureTargets/FolderErasureTargetSettings.Designer.cs (moved) (moved from trunk/eraser/Eraser.Manager/FolderErasureTargetSettings.Designer.cs) (1 diff)
-
Eraser.DefaultPlugins/ErasureTargets/FolderErasureTargetSettings.cs (moved) (moved from trunk/eraser/Eraser.Manager/FolderErasureTargetSettings.cs) (1 diff)
-
Eraser.DefaultPlugins/ErasureTargets/FolderErasureTargetSettings.resx (moved) (moved from trunk/eraser/Eraser.Manager/FolderErasureTargetSettings.resx)
-
Eraser.DefaultPlugins/ErasureTargets/UnusedSpaceErasureTargetSettings.Designer.cs (moved) (moved from trunk/eraser/Eraser.Manager/UnusedSpaceErasureTargetSettings.Designer.cs) (1 diff)
-
Eraser.DefaultPlugins/ErasureTargets/UnusedSpaceErasureTargetSettings.cs (moved) (moved from trunk/eraser/Eraser.Manager/UnusedSpaceErasureTargetSettings.cs) (1 diff)
-
Eraser.DefaultPlugins/ErasureTargets/UnusedSpaceErasureTargetSettings.resx (moved) (moved from trunk/eraser/Eraser.Manager/UnusedSpaceErasureTargetSettings.resx)
-
Eraser.DefaultPlugins/Plugin.cs (modified) (2 diffs)
-
Eraser.DefaultPlugins/Strings.en.resx (modified) (1 diff)
-
Eraser.DefaultPlugins/Strings.it.resx (modified) (1 diff)
-
Eraser.DefaultPlugins/Strings.nl.resx (modified) (1 diff)
-
Eraser.DefaultPlugins/Strings.pl.resx (modified) (1 diff)
-
Eraser.DefaultPlugins/Strings.resx (modified) (1 diff)
-
Eraser.Manager/DirectExecutor.cs (modified) (2 diffs)
-
Eraser.Manager/Eraser.Manager.csproj (modified) (4 diffs)
-
Eraser.Manager/ErasureTarget.cs (modified) (9 diffs)
-
Eraser.Manager/ManagerLibrary.cs (modified) (1 diff)
-
Eraser.Manager/Strings.en.resx (modified) (3 diffs)
-
Eraser.Manager/Strings.it.resx (modified) (3 diffs)
-
Eraser.Manager/Strings.nl.resx (modified) (5 diffs)
-
Eraser.Manager/Strings.pl.resx (modified) (3 diffs)
-
Eraser.Manager/Strings.resx (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/eraser/Eraser.DefaultPlugins/Eraser.DefaultPlugins.csproj
r1980 r2036 83 83 <Compile Include="ErasureMethods\VSITR.cs" /> 84 84 <Compile Include="ErasureMethods\RCMP_TSSIT_OPS_II.cs" /> 85 <Compile Include="ErasureTargets\File.cs" /> 86 <Compile Include="ErasureTargets\FileErasureTargetSettings.cs"> 87 <SubType>UserControl</SubType> 88 </Compile> 89 <Compile Include="ErasureTargets\FileErasureTargetSettings.Designer.cs"> 90 <DependentUpon>FileErasureTargetSettings.cs</DependentUpon> 91 </Compile> 92 <Compile Include="ErasureTargets\FolderErasureTargetSettings.cs"> 93 <SubType>UserControl</SubType> 94 </Compile> 95 <Compile Include="ErasureTargets\FolderErasureTargetSettings.Designer.cs"> 96 <DependentUpon>FolderErasureTargetSettings.cs</DependentUpon> 97 </Compile> 98 <Compile Include="ErasureTargets\UnusedSpaceErasureTargetSettings.cs"> 99 <SubType>UserControl</SubType> 100 </Compile> 101 <Compile Include="ErasureTargets\UnusedSpaceErasureTargetSettings.Designer.cs"> 102 <DependentUpon>UnusedSpaceErasureTargetSettings.cs</DependentUpon> 103 </Compile> 85 104 <Compile Include="FileSystems\Fat.cs" /> 86 105 <Compile Include="FileSystems\Ntfs.cs" /> … … 136 155 <SubType>Designer</SubType> 137 156 </EmbeddedResource> 157 <EmbeddedResource Include="ErasureTargets\FileErasureTargetSettings.resx"> 158 <DependentUpon>FileErasureTargetSettings.cs</DependentUpon> 159 </EmbeddedResource> 160 <EmbeddedResource Include="ErasureTargets\FolderErasureTargetSettings.resx"> 161 <DependentUpon>FolderErasureTargetSettings.cs</DependentUpon> 162 </EmbeddedResource> 163 <EmbeddedResource Include="ErasureTargets\UnusedSpaceErasureTargetSettings.resx"> 164 <DependentUpon>UnusedSpaceErasureTargetSettings.cs</DependentUpon> 165 </EmbeddedResource> 138 166 <EmbeddedResource Include="SettingsForm.it.resx"> 139 167 <DependentUpon>SettingsForm.cs</DependentUpon> -
trunk/eraser/Eraser.DefaultPlugins/ErasureTargets/FileErasureTargetSettings.Designer.cs
r2027 r2036 20 20 */ 21 21 22 namespace Eraser. Manager22 namespace Eraser.DefaultPlugins 23 23 { 24 24 partial class FileErasureTargetSettings -
trunk/eraser/Eraser.DefaultPlugins/ErasureTargets/FileErasureTargetSettings.cs
r2024 r2036 28 28 using System.Text; 29 29 using System.Windows.Forms; 30 31 using Eraser.Manager; 30 32 using Eraser.Util; 31 33 32 namespace Eraser. Manager34 namespace Eraser.DefaultPlugins 33 35 { 34 36 public partial class FileErasureTargetSettings : UserControl, IErasureTargetConfigurer -
trunk/eraser/Eraser.DefaultPlugins/ErasureTargets/FolderErasureTargetSettings.Designer.cs
r2027 r2036 20 20 */ 21 21 22 namespace Eraser. Manager22 namespace Eraser.DefaultPlugins 23 23 { 24 24 partial class FolderErasureTargetSettings -
trunk/eraser/Eraser.DefaultPlugins/ErasureTargets/FolderErasureTargetSettings.cs
r2024 r2036 29 29 using System.Windows.Forms; 30 30 31 using Eraser.Manager; 31 32 using Eraser.Util; 32 33 33 namespace Eraser. Manager34 namespace Eraser.DefaultPlugins 34 35 { 35 36 public partial class FolderErasureTargetSettings : UserControl, IErasureTargetConfigurer -
trunk/eraser/Eraser.DefaultPlugins/ErasureTargets/UnusedSpaceErasureTargetSettings.Designer.cs
r2027 r2036 20 20 */ 21 21 22 namespace Eraser. Manager22 namespace Eraser.DefaultPlugins 23 23 { 24 24 partial class UnusedSpaceErasureTargetSettings -
trunk/eraser/Eraser.DefaultPlugins/ErasureTargets/UnusedSpaceErasureTargetSettings.cs
r2024 r2036 29 29 using System.Windows.Forms; 30 30 using System.IO; 31 32 using Eraser.Manager; 31 33 using Eraser.Util; 32 34 using Eraser.Util.ExtensionMethods; 33 35 34 namespace Eraser. Manager36 namespace Eraser.DefaultPlugins 35 37 { 36 38 public partial class UnusedSpaceErasureTargetSettings : UserControl, IErasureTargetConfigurer -
trunk/eraser/Eraser.DefaultPlugins/Plugin.cs
r1983 r2036 38 38 39 39 //Then register the erasure methods et al. 40 ManagerLibrary.Instance.ErasureMethodRegistrar.Add(new Gutmann()); //35 passes41 ManagerLibrary.Instance.ErasureMethodRegistrar.Add(new GutmannLite()); //10 passes42 ManagerLibrary.Instance.ErasureMethodRegistrar.Add(new DoD_EcE()); //7 passes40 ManagerLibrary.Instance.ErasureMethodRegistrar.Add(new Gutmann()); //35 passes 41 ManagerLibrary.Instance.ErasureMethodRegistrar.Add(new GutmannLite()); //10 passes 42 ManagerLibrary.Instance.ErasureMethodRegistrar.Add(new DoD_EcE()); //7 passes 43 43 ManagerLibrary.Instance.ErasureMethodRegistrar.Add(new RCMP_TSSIT_OPS_II()); //7 passes 44 ManagerLibrary.Instance.ErasureMethodRegistrar.Add(new Schneier()); //7 passes44 ManagerLibrary.Instance.ErasureMethodRegistrar.Add(new Schneier()); //7 passes 45 45 ManagerLibrary.Instance.ErasureMethodRegistrar.Add(new VSITR()); //7 passes 46 46 ManagerLibrary.Instance.ErasureMethodRegistrar.Add(new DoD_E()); //3 passes 47 47 ManagerLibrary.Instance.ErasureMethodRegistrar.Add(new HMGIS5Enhanced()); //3 passes 48 ManagerLibrary.Instance.ErasureMethodRegistrar.Add(new USAF5020()); //3 passes48 ManagerLibrary.Instance.ErasureMethodRegistrar.Add(new USAF5020()); //3 passes 49 49 ManagerLibrary.Instance.ErasureMethodRegistrar.Add(new USArmyAR380_19()); //3 passes 50 50 ManagerLibrary.Instance.ErasureMethodRegistrar.Add(new GOSTP50739()); //2 passes 51 51 ManagerLibrary.Instance.ErasureMethodRegistrar.Add(new HMGIS5Baseline()); //1 pass 52 ManagerLibrary.Instance.ErasureMethodRegistrar.Add(new Pseudorandom()); //1 pass52 ManagerLibrary.Instance.ErasureMethodRegistrar.Add(new Pseudorandom()); //1 pass 53 53 EraseCustom.RegisterAll(); 54 54 ManagerLibrary.Instance.ErasureMethodRegistrar.Add(new FirstLast16KB()); … … 60 60 ManagerLibrary.Instance.FileSystemRegistrar.Add(new Fat32FileSystem()); 61 61 ManagerLibrary.Instance.FileSystemRegistrar.Add(new NtfsFileSystem()); 62 63 ManagerLibrary.Instance.ErasureTargetRegistrar.Add(new FileTarget()); 64 ManagerLibrary.Instance.ErasureTargetRegistrar.Add(new FolderTarget()); 65 ManagerLibrary.Instance.ErasureTargetRegistrar.Add(new RecycleBinTarget()); 66 ManagerLibrary.Instance.ErasureTargetRegistrar.Add(new UnusedSpaceTarget()); 62 67 } 63 68 -
trunk/eraser/Eraser.DefaultPlugins/Strings.en.resx
r1871 r2036 193 193 <value>{0} did not have its cluster tips erased because of the following error: {1}</value> 194 194 </data> 195 <data name="The file {0} was not erased as the file does not exist." xml:space="preserve"> 196 <value>The file {0} was not erased as the file does not exist.</value> 197 </data> 198 <data name="Erasing files..." xml:space="preserve"> 199 <value>Erasing files...</value> 200 </data> 201 <data name="The file {0} could not be erased because the file was either compressed, encrypted or a sparse file." xml:space="preserve"> 202 <value>The file {0} could not be erased because the file was either compressed, encrypted or a sparse file.</value> 203 </data> 204 <data name="The task was cancelled." xml:space="preserve"> 205 <value>The task was cancelled.</value> 206 </data> 207 <data name="Unused disk space ({0})" xml:space="preserve"> 208 <value>Unused disk space ({0})</value> 209 </data> 210 <data name="The program does not have the required permissions to erase the unused space on disk. Run the program as an administrator and retry the operation." xml:space="preserve"> 211 <value>The program does not have the required permissions to erase the unused space on disk. Run the program as an administrator and retry the operation.</value> 212 </data> 213 <data name="The program does not have the required permissions to erase the unused space on disk." xml:space="preserve"> 214 <value>The program does not have the required permissions to erase the unused space on disk.</value> 215 </data> 216 <data name="This computer has had System Restore or Volume Shadow Copies enabled. This may allow copies of files stored on the disk to be recovered and pose a security concern." xml:space="preserve"> 217 <value>This computer has had System Restore or Volume Shadow Copies enabled. This may allow copies of files stored on the disk to be recovered and pose a security concern.</value> 218 </data> 219 <data name="The drive {0} has disk quotas active. This will prevent the complete erasure of unused space and may pose a security concern." xml:space="preserve"> 220 <value>The drive {0} has disk quotas active. This will prevent the complete erasure of unused space and may pose a security concern.</value> 221 </data> 222 <data name="Searching for files' cluster tips..." xml:space="preserve"> 223 <value>Searching for files' cluster tips...</value> 224 </data> 225 <data name="Erasing cluster tips..." xml:space="preserve"> 226 <value>Erasing cluster tips...</value> 227 </data> 228 <data name="Erasing unused space..." xml:space="preserve"> 229 <value>Erasing unused space...</value> 230 </data> 231 <data name="Old resident file system table files" xml:space="preserve"> 232 <value>Old resident file system table files</value> 233 </data> 234 <data name="Removing temporary files..." xml:space="preserve"> 235 <value>Removing temporary files...</value> 236 </data> 237 <data name="Erasing unused directory structures..." xml:space="preserve"> 238 <value>Erasing unused directory structures...</value> 239 </data> 240 <data name="Could not erase files and subfolders in {0} because {1}" xml:space="preserve"> 241 <value>Could not erase files and subfolders in {0} because {1}</value> 242 </data> 243 <data name="Removing folders..." xml:space="preserve"> 244 <value>Removing folders...</value> 245 </data> 246 <data name="Recycle Bin" xml:space="preserve"> 247 <value>Recycle Bin</value> 248 </data> 249 <data name="Emptying recycle bin..." xml:space="preserve"> 250 <value>Emptying recycle bin...</value> 251 </data> 252 <data name="Invalid file path" xml:space="preserve"> 253 <value>Invalid file path</value> 254 </data> 255 <data name="Invalid folder path" xml:space="preserve"> 256 <value>Invalid folder path</value> 257 </data> 258 <data name="The path you selected is invalid." xml:space="preserve"> 259 <value>The path you selected is invalid.</value> 260 </data> 195 261 <data name="The custom erasure method can only comprise passes containing constant or random passes" xml:space="preserve"> 196 262 <value>The custom erasure method can only comprise passes containing constant or random passes</value> -
trunk/eraser/Eraser.DefaultPlugins/Strings.it.resx
r1871 r2036 193 193 <value>Non sono stati puliti i cluster tips di {0} per il seguente errore: {1}</value> 194 194 </data> 195 <data name="The file {0} was not erased as the file does not exist." xml:space="preserve"> 196 <value>(Untranslated)</value> 197 </data> 198 <data name="Erasing files..." xml:space="preserve"> 199 <value>(Untranslated)</value> 200 </data> 201 <data name="The file {0} could not be erased because the file was either compressed, encrypted or a sparse file." xml:space="preserve"> 202 <value>(Untranslated)</value> 203 </data> 204 <data name="The task was cancelled." xml:space="preserve"> 205 <value>(Untranslated)</value> 206 </data> 207 <data name="Unused disk space ({0})" xml:space="preserve"> 208 <value>(Untranslated)</value> 209 </data> 210 <data name="The program does not have the required permissions to erase the unused space on disk. Run the program as an administrator and retry the operation." xml:space="preserve"> 211 <value>(Untranslated)</value> 212 </data> 213 <data name="The program does not have the required permissions to erase the unused space on disk." xml:space="preserve"> 214 <value>(Untranslated)</value> 215 </data> 216 <data name="This computer has had System Restore or Volume Shadow Copies enabled. This may allow copies of files stored on the disk to be recovered and pose a security concern." xml:space="preserve"> 217 <value>(Untranslated)</value> 218 </data> 219 <data name="The drive {0} has disk quotas active. This will prevent the complete erasure of unused space and may pose a security concern." xml:space="preserve"> 220 <value>(Untranslated)</value> 221 </data> 222 <data name="Searching for files' cluster tips..." xml:space="preserve"> 223 <value>(Untranslated)</value> 224 </data> 225 <data name="Erasing cluster tips..." xml:space="preserve"> 226 <value>(Untranslated)</value> 227 </data> 228 <data name="Erasing unused space..." xml:space="preserve"> 229 <value>(Untranslated)</value> 230 </data> 231 <data name="Old resident file system table files" xml:space="preserve"> 232 <value>(Untranslated)</value> 233 </data> 234 <data name="Removing temporary files..." xml:space="preserve"> 235 <value>(Untranslated)</value> 236 </data> 237 <data name="Erasing unused directory structures..." xml:space="preserve"> 238 <value>(Untranslated)</value> 239 </data> 240 <data name="Could not erase files and subfolders in {0} because {1}" xml:space="preserve"> 241 <value>(Untranslated)</value> 242 </data> 243 <data name="Removing folders..." xml:space="preserve"> 244 <value>(Untranslated)</value> 245 </data> 246 <data name="Recycle Bin" xml:space="preserve"> 247 <value>(Untranslated)</value> 248 </data> 249 <data name="Emptying recycle bin..." xml:space="preserve"> 250 <value>(Untranslated)</value> 251 </data> 252 <data name="Invalid file path" xml:space="preserve"> 253 <value>(Untranslated)</value> 254 </data> 255 <data name="Invalid folder path" xml:space="preserve"> 256 <value>(Untranslated)</value> 257 </data> 258 <data name="The path you selected is invalid." xml:space="preserve"> 259 <value>(Untranslated)</value> 260 </data> 195 261 <data name="The custom erasure method can only comprise passes containing constant or random passes" xml:space="preserve"> 196 262 <value>Il metodo di pulizia custom può solo prevedere passi costanti oppure casuali</value> -
trunk/eraser/Eraser.DefaultPlugins/Strings.nl.resx
r1871 r2036 193 193 <value>(Untranslated)</value> 194 194 </data> 195 <data name="The file {0} was not erased as the file does not exist." xml:space="preserve"> 196 <value>(Untranslated)</value> 197 </data> 198 <data name="Erasing files..." xml:space="preserve"> 199 <value>(Untranslated)</value> 200 </data> 201 <data name="The file {0} could not be erased because the file was either compressed, encrypted or a sparse file." xml:space="preserve"> 202 <value>(Untranslated)</value> 203 </data> 204 <data name="The task was cancelled." xml:space="preserve"> 205 <value>(Untranslated)</value> 206 </data> 207 <data name="Unused disk space ({0})" xml:space="preserve"> 208 <value>(Untranslated)</value> 209 </data> 210 <data name="The program does not have the required permissions to erase the unused space on disk. Run the program as an administrator and retry the operation." xml:space="preserve"> 211 <value>(Untranslated)</value> 212 </data> 213 <data name="The program does not have the required permissions to erase the unused space on disk." xml:space="preserve"> 214 <value>(Untranslated)</value> 215 </data> 216 <data name="This computer has had System Restore or Volume Shadow Copies enabled. This may allow copies of files stored on the disk to be recovered and pose a security concern." xml:space="preserve"> 217 <value>(Untranslated)</value> 218 </data> 219 <data name="The drive {0} has disk quotas active. This will prevent the complete erasure of unused space and may pose a security concern." xml:space="preserve"> 220 <value>(Untranslated)</value> 221 </data> 222 <data name="Searching for files' cluster tips..." xml:space="preserve"> 223 <value>(Untranslated)</value> 224 </data> 225 <data name="Erasing cluster tips..." xml:space="preserve"> 226 <value>(Untranslated)</value> 227 </data> 228 <data name="Erasing unused space..." xml:space="preserve"> 229 <value>(Untranslated)</value> 230 </data> 231 <data name="Old resident file system table files" xml:space="preserve"> 232 <value>(Untranslated)</value> 233 </data> 234 <data name="Removing temporary files..." xml:space="preserve"> 235 <value>(Untranslated)</value> 236 </data> 237 <data name="Erasing unused directory structures..." xml:space="preserve"> 238 <value>(Untranslated)</value> 239 </data> 240 <data name="Could not erase files and subfolders in {0} because {1}" xml:space="preserve"> 241 <value>(Untranslated)</value> 242 </data> 243 <data name="Removing folders..." xml:space="preserve"> 244 <value>(Untranslated)</value> 245 </data> 246 <data name="Recycle Bin" xml:space="preserve"> 247 <value>(Untranslated)</value> 248 </data> 249 <data name="Emptying recycle bin..." xml:space="preserve"> 250 <value>(Untranslated)</value> 251 </data> 252 <data name="Invalid file path" xml:space="preserve"> 253 <value>(Untranslated)</value> 254 </data> 255 <data name="Invalid folder path" xml:space="preserve"> 256 <value>(Untranslated)</value> 257 </data> 258 <data name="The path you selected is invalid." xml:space="preserve"> 259 <value>(Untranslated)</value> 260 </data> 195 261 <data name="The custom erasure method can only comprise passes containing constant or random passes" xml:space="preserve"> 196 262 <value>(Untranslated)</value> -
trunk/eraser/Eraser.DefaultPlugins/Strings.pl.resx
r1906 r2036 193 193 <value>{0} nie ma wymazanych resztek klastrów z powodu błędu: {1}</value> 194 194 </data> 195 <data name="The file {0} was not erased as the file does not exist." xml:space="preserve"> 196 <value>(Untranslated)</value> 197 </data> 198 <data name="Erasing files..." xml:space="preserve"> 199 <value>(Untranslated)</value> 200 </data> 201 <data name="The file {0} could not be erased because the file was either compressed, encrypted or a sparse file." xml:space="preserve"> 202 <value>(Untranslated)</value> 203 </data> 204 <data name="The task was cancelled." xml:space="preserve"> 205 <value>(Untranslated)</value> 206 </data> 207 <data name="Unused disk space ({0})" xml:space="preserve"> 208 <value>(Untranslated)</value> 209 </data> 210 <data name="The program does not have the required permissions to erase the unused space on disk. Run the program as an administrator and retry the operation." xml:space="preserve"> 211 <value>(Untranslated)</value> 212 </data> 213 <data name="The program does not have the required permissions to erase the unused space on disk." xml:space="preserve"> 214 <value>(Untranslated)</value> 215 </data> 216 <data name="This computer has had System Restore or Volume Shadow Copies enabled. This may allow copies of files stored on the disk to be recovered and pose a security concern." xml:space="preserve"> 217 <value>(Untranslated)</value> 218 </data> 219 <data name="The drive {0} has disk quotas active. This will prevent the complete erasure of unused space and may pose a security concern." xml:space="preserve"> 220 <value>(Untranslated)</value> 221 </data> 222 <data name="Searching for files' cluster tips..." xml:space="preserve"> 223 <value>(Untranslated)</value> 224 </data> 225 <data name="Erasing cluster tips..." xml:space="preserve"> 226 <value>(Untranslated)</value> 227 </data> 228 <data name="Erasing unused space..." xml:space="preserve"> 229 <value>(Untranslated)</value> 230 </data> 231 <data name="Old resident file system table files" xml:space="preserve"> 232 <value>(Untranslated)</value> 233 </data> 234 <data name="Removing temporary files..." xml:space="preserve"> 235 <value>(Untranslated)</value> 236 </data> 237 <data name="Erasing unused directory structures..." xml:space="preserve"> 238 <value>(Untranslated)</value> 239 </data> 240 <data name="Could not erase files and subfolders in {0} because {1}" xml:space="preserve"> 241 <value>(Untranslated)</value> 242 </data> 243 <data name="Removing folders..." xml:space="preserve"> 244 <value>(Untranslated)</value> 245 </data> 246 <data name="Recycle Bin" xml:space="preserve"> 247 <value>(Untranslated)</value> 248 </data> 249 <data name="Emptying recycle bin..." xml:space="preserve"> 250 <value>(Untranslated)</value> 251 </data> 252 <data name="Invalid file path" xml:space="preserve"> 253 <value>(Untranslated)</value> 254 </data> 255 <data name="Invalid folder path" xml:space="preserve"> 256 <value>(Untranslated)</value> 257 </data> 258 <data name="The path you selected is invalid." xml:space="preserve"> 259 <value>(Untranslated)</value> 260 </data> 195 261 <data name="The custom erasure method can only comprise passes containing constant or random passes" xml:space="preserve"> 196 262 <value>Zwykła metoda wymazywania może tylko obejmować przebiegi ze stałymi lub losowymi przebiegami</value> -
trunk/eraser/Eraser.DefaultPlugins/Strings.resx
r1871 r2036 193 193 <value>{0} did not have its cluster tips erased because of the following error: {1}</value> 194 194 </data> 195 <data name="The file {0} was not erased as the file does not exist." xml:space="preserve"> 196 <value>The file {0} was not erased as the file does not exist.</value> 197 </data> 198 <data name="Erasing files..." xml:space="preserve"> 199 <value>Erasing files...</value> 200 </data> 201 <data name="The file {0} could not be erased because the file was either compressed, encrypted or a sparse file." xml:space="preserve"> 202 <value>The file {0} could not be erased because the file was either compressed, encrypted or a sparse file.</value> 203 </data> 204 <data name="The task was cancelled." xml:space="preserve"> 205 <value>The task was cancelled.</value> 206 </data> 207 <data name="Unused disk space ({0})" xml:space="preserve"> 208 <value>Unused disk space ({0})</value> 209 </data> 210 <data name="The program does not have the required permissions to erase the unused space on disk. Run the program as an administrator and retry the operation." xml:space="preserve"> 211 <value>The program does not have the required permissions to erase the unused space on disk. Run the program as an administrator and retry the operation.</value> 212 </data> 213 <data name="The program does not have the required permissions to erase the unused space on disk." xml:space="preserve"> 214 <value>The program does not have the required permissions to erase the unused space on disk.</value> 215 </data> 216 <data name="This computer has had System Restore or Volume Shadow Copies enabled. This may allow copies of files stored on the disk to be recovered and pose a security concern." xml:space="preserve"> 217 <value>This computer has had System Restore or Volume Shadow Copies enabled. This may allow copies of files stored on the disk to be recovered and pose a security concern.</value> 218 </data> 219 <data name="The drive {0} has disk quotas active. This will prevent the complete erasure of unused space and may pose a security concern." xml:space="preserve"> 220 <value>The drive {0} has disk quotas active. This will prevent the complete erasure of unused space and may pose a security concern.</value> 221 </data> 222 <data name="Searching for files' cluster tips..." xml:space="preserve"> 223 <value>Searching for files' cluster tips...</value> 224 </data> 225 <data name="Erasing cluster tips..." xml:space="preserve"> 226 <value>Erasing cluster tips...</value> 227 </data> 228 <data name="Erasing unused space..." xml:space="preserve"> 229 <value>Erasing unused space...</value> 230 </data> 231 <data name="Old resident file system table files" xml:space="preserve"> 232 <value>Old resident file system table files</value> 233 </data> 234 <data name="Removing temporary files..." xml:space="preserve"> 235 <value>Removing temporary files...</value> 236 </data> 237 <data name="Erasing unused directory structures..." xml:space="preserve"> 238 <value>Erasing unused directory structures...</value> 239 </data> 240 <data name="Could not erase files and subfolders in {0} because {1}" xml:space="preserve"> 241 <value>Could not erase files and subfolders in {0} because {1}</value> 242 </data> 243 <data name="Removing folders..." xml:space="preserve"> 244 <value>Removing folders...</value> 245 </data> 246 <data name="Recycle Bin" xml:space="preserve"> 247 <value>Recycle Bin</value> 248 </data> 249 <data name="Emptying recycle bin..." xml:space="preserve"> 250 <value>Emptying recycle bin...</value> 251 </data> 252 <data name="Invalid file path" xml:space="preserve"> 253 <value>Invalid file path</value> 254 </data> 255 <data name="Invalid folder path" xml:space="preserve"> 256 <value>Invalid folder path</value> 257 </data> 258 <data name="The path you selected is invalid." xml:space="preserve"> 259 <value>The path you selected is invalid.</value> 260 </data> 195 261 <data name="The custom erasure method can only comprise passes containing constant or random passes" xml:space="preserve"> 196 262 <value>The custom erasure method can only comprise passes containing constant or random passes</value> -
trunk/eraser/Eraser.Manager/DirectExecutor.cs
r2032 r2036 289 289 try 290 290 { 291 UnusedSpaceTarget unusedSpaceTarget = 292 target as UnusedSpaceTarget; 293 FileSystemObjectTarget fileSystemObjectTarget = 294 target as FileSystemObjectTarget; 295 296 if (unusedSpaceTarget != null) 297 EraseUnusedSpace(task, unusedSpaceTarget); 298 else if (fileSystemObjectTarget != null) 299 EraseFilesystemObject(task, fileSystemObjectTarget); 300 else 301 throw new ArgumentException("Unknown erasure target."); 291 target.Execute(); 302 292 } 303 293 catch (FatalException) … … 344 334 currentTask = null; 345 335 } 346 }347 348 /// <summary>349 /// Executes a unused space erase.350 /// </summary>351 /// <param name="task">The task currently being executed</param>352 /// <param name="target">The target of the unused space erase.</param>353 private void EraseUnusedSpace(Task task, UnusedSpaceTarget target)354 {355 //Check for sufficient privileges to run the unused space erasure.356 if (!Security.IsAdministrator())357 {358 if (Environment.OSVersion.Platform == PlatformID.Win32NT &&359 Environment.OSVersion.Version >= new Version(6, 0))360 {361 Logger.Log(S._("The program does not have the required permissions to erase " +362 "the unused space on disk. Run the program as an administrator and retry " +363 "the operation."), LogLevel.Error);364 }365 else366 {367 Logger.Log(S._("The program does not have the required permissions to erase " +368 "the unused space on disk."), LogLevel.Error);369 }370 371 return;372 }373 374 //Check whether System Restore has any available checkpoints.375 if (SystemRestore.GetInstances().Count != 0)376 {377 Logger.Log(S._("This computer has had System Restore or Volume Shadow Copies " +378 "enabled. This may allow copies of files stored on the disk to be recovered " +379 "and pose a security concern.", target.Drive), LogLevel.Warning);380 }381 382 //If the user is under disk quotas, log a warning message383 if (VolumeInfo.FromMountPoint(target.Drive).HasQuota)384 Logger.Log(S._("The drive {0} has disk quotas active. This will prevent the " +385 "complete erasure of unused space and may pose a security concern.",386 target.Drive), LogLevel.Warning);387 388 //Get the erasure method if the user specified he wants the default.389 ErasureMethod method = target.EffectiveMethod;390 391 //Make a folder to dump our temporary files in392 DirectoryInfo info = new DirectoryInfo(target.Drive);393 VolumeInfo volInfo = VolumeInfo.FromMountPoint(target.Drive);394 FileSystem fsManager = ManagerLibrary.Instance.FileSystemRegistrar[volInfo];395 396 //Start sampling the speed of the task.397 SteppedProgressManager progress = new SteppedProgressManager();398 target.Progress = progress;399 task.Progress.Steps.Add(new SteppedProgressManagerStep(400 progress, 1.0f / task.Targets.Count));401 402 //Erase the cluster tips of every file on the drive.403 if (target.EraseClusterTips)404 {405 //Define the callback handlers406 ProgressManager tipSearch = new ProgressManager();407 progress.Steps.Add(new SteppedProgressManagerStep(tipSearch,408 0.0f, S._("Searching for files' cluster tips...")));409 tipSearch.Total = 1;410 ClusterTipsSearchProgress searchProgress = delegate(string path)411 {412 if (currentTask.Canceled)413 throw new OperationCanceledException(S._("The task was cancelled."));414 415 task.OnProgressChanged(target,416 new ProgressChangedEventArgs(tipSearch,417 new TaskProgressChangedEventArgs(path, 0, 0)));418 };419 420 ProgressManager tipProgress = new ProgressManager();421 progress.Steps.Add(new SteppedProgressManagerStep(tipProgress, 0.1f,422 S._("Erasing cluster tips...")));423 ClusterTipsEraseProgress eraseProgress =424 delegate(int currentFile, int totalFiles, string currentFilePath)425 {426 tipSearch.MarkComplete();427 tipProgress.Total = totalFiles;428 tipProgress.Completed = currentFile;429 task.OnProgressChanged(target,430 new ProgressChangedEventArgs(tipProgress,431 new TaskProgressChangedEventArgs(currentFilePath, 0, 0)));432 433 if (currentTask.Canceled)434 throw new OperationCanceledException(S._("The task was cancelled."));435 };436 437 //Start counting statistics438 fsManager.EraseClusterTips(VolumeInfo.FromMountPoint(target.Drive),439 method, searchProgress, eraseProgress);440 tipProgress.MarkComplete();441 }442 443 bool lowDiskSpaceNotifications = Shell.LowDiskSpaceNotificationsEnabled;444 info = info.CreateSubdirectory(Path.GetFileName(445 FileSystem.GenerateRandomFileName(info, 18)));446 try447 {448 //Set the folder's compression flag off since we want to use as much449 //space as possible450 if (info.IsCompressed())451 info.Uncompress();452 453 //Disable the low disk space notifications454 Shell.LowDiskSpaceNotificationsEnabled = false;455 456 ProgressManager mainProgress = new ProgressManager();457 progress.Steps.Add(new SteppedProgressManagerStep(mainProgress,458 target.EraseClusterTips ? 0.8f : 0.9f, S._("Erasing unused space...")));459 460 //Continue creating files while there is free space.461 while (volInfo.AvailableFreeSpace > 0)462 {463 //Generate a non-existant file name464 string currFile = FileSystem.GenerateRandomFileName(info, 18);465 466 //Create the stream467 using (FileStream stream = new FileStream(currFile, FileMode.CreateNew,468 FileAccess.Write, FileShare.None, 8, FileOptions.WriteThrough))469 {470 //Set the length of the file to be the amount of free space left471 //or the maximum size of one of these dumps.472 mainProgress.Total = mainProgress.Completed +473 method.CalculateEraseDataSize(null, volInfo.AvailableFreeSpace);474 long streamLength = Math.Min(ErasureMethod.FreeSpaceFileUnit,475 volInfo.AvailableFreeSpace);476 477 //Handle IO exceptions gracefully, because the filesystem478 //may require more space than demanded by us for file allocation.479 while (true)480 try481 {482 stream.SetLength(streamLength);483 break;484 }485 catch (IOException)486 {487 if (streamLength > volInfo.ClusterSize)488 streamLength -= volInfo.ClusterSize;489 else490 throw;491 }492 493 //Then run the erase task494 method.Erase(stream, long.MaxValue,495 ManagerLibrary.Instance.PrngRegistrar[ManagerLibrary.Settings.ActivePrng],496 delegate(long lastWritten, long totalData, int currentPass)497 {498 mainProgress.Completed += lastWritten;499 task.OnProgressChanged(target,500 new ProgressChangedEventArgs(mainProgress,501 new TaskProgressChangedEventArgs(target.Drive, currentPass, method.Passes)));502 503 if (currentTask.Canceled)504 throw new OperationCanceledException(S._("The task was cancelled."));505 }506 );507 }508 }509 510 //Mark the main bulk of the progress as complete511 mainProgress.MarkComplete();512 513 //Erase old resident file system table files514 ProgressManager residentProgress = new ProgressManager();515 progress.Steps.Add(new SteppedProgressManagerStep(residentProgress,516 0.05f, S._("Old resident file system table files")));517 fsManager.EraseOldFileSystemResidentFiles(volInfo, info, method,518 delegate(int currentFile, int totalFiles)519 {520 residentProgress.Completed = currentFile;521 residentProgress.Total = totalFiles;522 task.OnProgressChanged(target,523 new ProgressChangedEventArgs(residentProgress,524 new TaskProgressChangedEventArgs(string.Empty, 0, 0)));525 526 if (currentTask.Canceled)527 throw new OperationCanceledException(S._("The task was cancelled."));528 }529 );530 531 residentProgress.MarkComplete();532 }533 finally534 {535 //Remove the folder holding all our temporary files.536 ProgressManager tempFiles = new ProgressManager();537 progress.Steps.Add(new SteppedProgressManagerStep(tempFiles,538 0.0f, S._("Removing temporary files...")));539 task.OnProgressChanged(target, new ProgressChangedEventArgs(tempFiles,540 new TaskProgressChangedEventArgs(string.Empty, 0, 0)));541 fsManager.DeleteFolder(info);542 tempFiles.Completed = tempFiles.Total;543 544 //Reset the low disk space notifications545 Shell.LowDiskSpaceNotificationsEnabled = lowDiskSpaceNotifications;546 }547 548 //Then clean the old file system entries549 ProgressManager structureProgress = new ProgressManager();550 progress.Steps.Add(new SteppedProgressManagerStep(structureProgress,551 0.05f, S._("Erasing unused directory structures...")));552 fsManager.EraseDirectoryStructures(volInfo,553 delegate(int currentFile, int totalFiles)554 {555 if (currentTask.Canceled)556 throw new OperationCanceledException(S._("The task was cancelled."));557 558 //Compute the progress559 structureProgress.Total = totalFiles;560 structureProgress.Completed = currentFile;561 562 //Set the event parameters, then broadcast the progress event.563 task.OnProgressChanged(target,564 new ProgressChangedEventArgs(structureProgress,565 new TaskProgressChangedEventArgs(string.Empty, 0, 0)));566 }567 );568 569 structureProgress.MarkComplete();570 target.Progress = null;571 }572 573 /// <summary>574 /// Erases a file or folder on the volume.575 /// </summary>576 /// <param name="task">The task currently being processed.</param>577 /// <param name="target">The target of the erasure.</param>578 /// <param name="progress">The progress manager for the current task.</param>579 private void EraseFilesystemObject(Task task, FileSystemObjectTarget target)580 {581 //Retrieve the list of files to erase.582 long dataTotal = 0;583 List<string> paths = target.GetPaths(out dataTotal);584 585 //Get the erasure method if the user specified he wants the default.586 ErasureMethod method = target.EffectiveMethod;587 dataTotal = method.CalculateEraseDataSize(paths, dataTotal);588 589 //Set the event's current target status.590 SteppedProgressManager progress = new SteppedProgressManager();591 target.Progress = progress;592 task.Progress.Steps.Add(new SteppedProgressManagerStep(progress, 1.0f / task.Targets.Count));593 594 //Iterate over every path, and erase the path.595 for (int i = 0; i < paths.Count; ++i)596 {597 //Check that the file exists - we do not want to bother erasing nonexistant files598 StreamInfo info = new StreamInfo(paths[i]);599 if (!info.Exists)600 {601 Logger.Log(S._("The file {0} was not erased as the file does not exist.",602 paths[i]), LogLevel.Notice);603 continue;604 }605 606 //Get the filesystem provider to handle the secure file erasures607 FileSystem fsManager = ManagerLibrary.Instance.FileSystemRegistrar[608 VolumeInfo.FromMountPoint(info.DirectoryName)];609 610 bool isReadOnly = false;611 612 try613 {614 //Update the task progress615 ProgressManager step = new ProgressManager();616 progress.Steps.Add(new SteppedProgressManagerStep(step,617 info.Length / (float)dataTotal, S._("Erasing files...")));618 task.OnProgressChanged(target,619 new ProgressChangedEventArgs(step,620 new TaskProgressChangedEventArgs(paths[i], 0, method.Passes)));621 622 //Remove the read-only flag, if it is set.623 if (isReadOnly = info.IsReadOnly)624 info.IsReadOnly = false;625 626 //Make sure the file does not have any attributes which may affect627 //the erasure process628 if ((info.Attributes & FileAttributes.Compressed) != 0 ||629 (info.Attributes & FileAttributes.Encrypted) != 0 ||630 (info.Attributes & FileAttributes.SparseFile) != 0)631 {632 //Log the error633 Logger.Log(S._("The file {0} could not be erased because the file was " +634 "either compressed, encrypted or a sparse file.", info.FullName),635 LogLevel.Error);636 continue;637 }638 639 fsManager.EraseFileSystemObject(info, method,640 delegate(long lastWritten, long totalData, int currentPass)641 {642 if (currentTask.Canceled)643 throw new OperationCanceledException(S._("The task was cancelled."));644 645 step.Total = totalData;646 step.Completed += lastWritten;647 task.OnProgressChanged(target,648 new ProgressChangedEventArgs(step,649 new TaskProgressChangedEventArgs(info.FullName, currentPass, method.Passes)));650 });651 652 //Remove the file.653 FileInfo fileInfo = info.File;654 if (fileInfo != null)655 fsManager.DeleteFile(fileInfo);656 step.MarkComplete();657 }658 catch (UnauthorizedAccessException)659 {660 Logger.Log(S._("The file {0} could not be erased because the file's " +661 "permissions prevent access to the file.", info.FullName), LogLevel.Error);662 }663 catch (SharingViolationException)664 {665 if (!ManagerLibrary.Settings.ForceUnlockLockedFiles)666 throw;667 668 StringBuilder processStr = new StringBuilder();669 foreach (OpenHandle handle in OpenHandle.Close(info.FullName))670 {671 try672 {673 processStr.AppendFormat(674 System.Globalization.CultureInfo.InvariantCulture,675 "{0}, ", System.Diagnostics.Process.GetProcessById(handle.ProcessId).MainModule.FileName);676 }677 catch (System.ComponentModel.Win32Exception)678 {679 processStr.AppendFormat(680 System.Globalization.CultureInfo.InvariantCulture,681 "Process ID {0}, ", handle.ProcessId);682 }683 }684 685 if (processStr.Length != 0)686 Logger.Log(S._("Could not force closure of file \"{0}\" {1}",687 paths[i], S._("(locked by {0})",688 processStr.ToString().Remove(processStr.Length - 2)).Trim()),689 LogLevel.Error);690 }691 finally692 {693 //Re-set the read-only flag if the file exists (i.e. there was an error)694 if (isReadOnly && info.Exists && !info.IsReadOnly)695 info.IsReadOnly = isReadOnly;696 }697 }698 699 //If the user requested a folder removal, do it.700 if ((target is FolderTarget) && Directory.Exists(target.Path))701 {702 ProgressManager step = new ProgressManager();703 progress.Steps.Add(new SteppedProgressManagerStep(step,704 0.0f, S._("Removing folders...")));705 706 //Remove all subfolders which are empty.707 FolderTarget fldr = (FolderTarget)target;708 FileSystem fsManager = ManagerLibrary.Instance.FileSystemRegistrar[VolumeInfo.FromMountPoint(fldr.Path)];709 Action<DirectoryInfo> eraseEmptySubFolders = null;710 eraseEmptySubFolders = delegate(DirectoryInfo info)711 {712 foreach (DirectoryInfo subDir in info.GetDirectories())713 eraseEmptySubFolders(subDir);714 task.OnProgressChanged(target,715 new ProgressChangedEventArgs(step,716 new TaskProgressChangedEventArgs(info.FullName, 0, 0)));717 718 FileSystemInfo[] files = info.GetFileSystemInfos();719 if (files.Length == 0)720 fsManager.DeleteFolder(info);721 };722 723 DirectoryInfo directory = new DirectoryInfo(fldr.Path);724 foreach (DirectoryInfo subDir in directory.GetDirectories())725 eraseEmptySubFolders(subDir);726 727 if (fldr.DeleteIfEmpty)728 {729 //See if this is the root of a volume.730 bool isVolumeRoot = directory.Parent == null;731 foreach (VolumeInfo volume in VolumeInfo.Volumes)732 foreach (string mountPoint in volume.MountPoints)733 if (directory.FullName == mountPoint)734 isVolumeRoot = true;735 736 //If the folder is a mount point, then don't delete it. If it isn't,737 //search for files under the folder to see if it is empty.738 if (!isVolumeRoot && directory.Exists &&739 directory.GetFiles("*", SearchOption.AllDirectories).Length == 0)740 {741 fsManager.DeleteFolder(directory);742 }743 }744 }745 746 //If the user was erasing the recycle bin, clear the bin.747 if (target is RecycleBinTarget)748 {749 ProgressManager step = new ProgressManager();750 progress.Steps.Add(new SteppedProgressManagerStep(step,751 0.0f, S._("Emptying recycle bin...")));752 task.OnProgressChanged(target,753 new ProgressChangedEventArgs(step,754 new TaskProgressChangedEventArgs(string.Empty, 0, 0)));755 756 RecycleBin.Empty(EmptyRecycleBinOptions.NoConfirmation |757 EmptyRecycleBinOptions.NoProgressUI | EmptyRecycleBinOptions.NoSound);758 }759 760 target.Progress = null;761 336 } 762 337 -
trunk/eraser/Eraser.Manager/Eraser.Manager.csproj
r2035 r2036 70 70 <Compile Include="Exception.cs" /> 71 71 <Compile Include="Executor.cs" /> 72 <Compile Include="FileErasureTargetSettings.cs">73 <SubType>UserControl</SubType>74 </Compile>75 <Compile Include="FileErasureTargetSettings.Designer.cs">76 <DependentUpon>FileErasureTargetSettings.cs</DependentUpon>77 </Compile>78 72 <Compile Include="FileSystem.cs" /> 79 <Compile Include="FolderErasureTargetSettings.cs">80 <SubType>UserControl</SubType>81 </Compile>82 <Compile Include="FolderErasureTargetSettings.Designer.cs">83 <DependentUpon>FolderErasureTargetSettings.cs</DependentUpon>84 </Compile>85 73 <Compile Include="IRegistrar.cs" /> 86 74 <Compile Include="ManagerLibrary.cs" /> … … 93 81 <Compile Include="Settings.cs" /> 94 82 <Compile Include="Task.cs" /> 95 <Compile Include="UnusedSpaceErasureTargetSettings.cs">96 <SubType>UserControl</SubType>97 </Compile>98 <Compile Include="UnusedSpaceErasureTargetSettings.Designer.cs">99 <DependentUpon>UnusedSpaceErasureTargetSettings.cs</DependentUpon>100 </Compile>101 83 </ItemGroup> 102 84 <ItemGroup> … … 111 93 </ItemGroup> 112 94 <ItemGroup> 113 <EmbeddedResource Include="FileErasureTargetSettings.resx">114 <DependentUpon>FileErasureTargetSettings.cs</DependentUpon>115 </EmbeddedResource>116 <EmbeddedResource Include="FolderErasureTargetSettings.resx">117 <DependentUpon>FolderErasureTargetSettings.cs</DependentUpon>118 </EmbeddedResource>119 95 <EmbeddedResource Include="Strings.en.resx"> 120 96 <SubType>Designer</SubType> … … 127 103 <EmbeddedResource Include="Strings.resx"> 128 104 <SubType>Designer</SubType> 129 </EmbeddedResource>130 <EmbeddedResource Include="UnusedSpaceErasureTargetSettings.resx">131 <DependentUpon>UnusedSpaceErasureTargetSettings.cs</DependentUpon>132 105 </EmbeddedResource> 133 106 </ItemGroup> -
trunk/eraser/Eraser.Manager/ErasureTarget.cs
r2033 r2036 25 25 using System.Text; 26 26 27 using System.Text.RegularExpressions;28 27 using System.Security.Permissions; 29 using System.IO;30 28 using System.Runtime.Serialization; 31 29 … … 39 37 /// </summary> 40 38 [Serializable] 41 public abstract class ErasureTarget : ISerializable 39 public abstract class ErasureTarget : ISerializable, IRegisterable 42 40 { 43 41 #region Serialization code … … 58 56 #endregion 59 57 58 #region IRegisterable Members 59 60 public abstract Guid Guid 61 { 62 get; 63 } 64 65 #endregion 66 60 67 /// <summary> 61 68 /// Constructor. … … 133 140 { 134 141 get; 142 protected set; 143 } 144 145 /// <summary> 146 /// The Progress Changed event handler of the owning task. 147 /// </summary> 148 protected internal Action<ErasureTarget, ProgressChangedEventArgs> OnProgressChanged 149 { 150 get; 135 151 internal set; 136 152 } … … 149 165 150 166 /// <summary> 151 /// Executes the given task. 152 /// </summary> 153 /// <param name="progress">The progress manager instance which is used to 154 /// track the progress of the current target's erasure.</param> 155 public virtual void Execute(ProgressManagerBase progress) 156 { 157 } 167 /// Executes the given target. 168 /// </summary> 169 public abstract void Execute(); 158 170 159 171 /// <summary> … … 184 196 } 185 197 186 /// <summary> 187 /// Class representing a tangible object (file/folder) to be erased. 188 /// </summary> 189 [Serializable] 190 public abstract class FileSystemObjectTarget : ErasureTarget 198 public class ErasureTargetRegistrar : Registrar<ErasureTarget> 191 199 { 192 #region Serialization code193 protected FileSystemObjectTarget(SerializationInfo info, StreamingContext context)194 : base(info, context)195 {196 Path = (string)info.GetValue("Path", typeof(string));197 }198 199 [SecurityPermission(SecurityAction.Demand, SerializationFormatter = true)]200 public override void GetObjectData(SerializationInfo info, StreamingContext context)201 {202 base.GetObjectData(info, context);203 info.AddValue("Path", Path);204 }205 #endregion206 207 /// <summary>208 /// Constructor.209 /// </summary>210 protected FileSystemObjectTarget()211 : base()212 {213 }214 215 /// <summary>216 /// Retrieves the list of files/folders to erase as a list.217 /// </summary>218 /// <param name="totalSize">Returns the total size in bytes of the219 /// items.</param>220 /// <returns>A list containing the paths to all the files to be erased.</returns>221 internal abstract List<string> GetPaths(out long totalSize);222 223 /// <summary>224 /// Adds ADSes of the given file to the list.225 /// </summary>226 /// <param name="list">The list to add the ADS paths to.</param>227 /// <param name="file">The file to look for ADSes</param>228 protected void GetPathADSes(ICollection<string> list, out long totalSize, string file)229 {230 totalSize = 0;231 232 try233 {234 //Get the ADS names235 IList<string> adses = new FileInfo(file).GetADSes();236 237 //Then prepend the path.238 foreach (string adsName in adses)239 {240 string adsPath = file + ':' + adsName;241 list.Add(adsPath);242 StreamInfo info = new StreamInfo(adsPath);243 totalSize += info.Length;244 }245 }246 catch (FileNotFoundException)247 {248 }249 catch (SharingViolationException)250 {251 //The system cannot open the file, try to force the file handle to close.252 if (!ManagerLibrary.Settings.ForceUnlockLockedFiles)253 throw;254 255 StringBuilder processStr = new StringBuilder();256 foreach (OpenHandle handle in OpenHandle.Close(file))257 {258 try259 {260 processStr.AppendFormat(261 System.Globalization.CultureInfo.InvariantCulture,262 "{0}, ", (System.Diagnostics.Process.GetProcessById(handle.ProcessId)).MainModule.FileName);263 }264 catch (System.ComponentModel.Win32Exception)265 {266 processStr.AppendFormat(267 System.Globalization.CultureInfo.InvariantCulture,268 "Process ID {0}, ", handle.ProcessId);269 }270 }271 272 if (processStr.Length == 0)273 {274 GetPathADSes(list, out totalSize, file);275 return;276 }277 else278 throw;279 }280 catch (UnauthorizedAccessException e)281 {282 //The system cannot read the file, assume no ADSes for lack of283 //more information.284 Logger.Log(e.Message, LogLevel.Error);285 }286 }287 288 /// <summary>289 /// The path to the file or folder referred to by this object.290 /// </summary>291 public string Path { get; set; }292 293 public sealed override ErasureMethod EffectiveMethod294 {295 get296 {297 if (Method != ErasureMethodRegistrar.Default)298 return base.EffectiveMethod;299 300 return ManagerLibrary.Instance.ErasureMethodRegistrar[301 ManagerLibrary.Settings.DefaultFileErasureMethod];302 }303 }304 305 public override string UIText306 {307 get308 {309 string fileName = System.IO.Path.GetFileName(Path);310 string directoryName = System.IO.Path.GetDirectoryName(Path);311 return string.IsNullOrEmpty(fileName) ?312 (string.IsNullOrEmpty(directoryName) ? Path : directoryName)313 : fileName;314 }315 }316 }317 318 /// <summary>319 /// Class representing a unused space erase.320 /// </summary>321 [Serializable]322 public class UnusedSpaceTarget : ErasureTarget323 {324 #region Serialization code325 protected UnusedSpaceTarget(SerializationInfo info, StreamingContext context)326 : base(info, context)327 {328 Drive = (string)info.GetValue("Drive", typeof(string));329 EraseClusterTips = (bool)info.GetValue("EraseClusterTips", typeof(bool));330 }331 332 [SecurityPermission(SecurityAction.Demand, SerializationFormatter = true)]333 public override void GetObjectData(SerializationInfo info, StreamingContext context)334 {335 base.GetObjectData(info, context);336 info.AddValue("Drive", Drive);337 info.AddValue("EraseClusterTips", EraseClusterTips);338 }339 #endregion340 341 /// <summary>342 /// Constructor.343 /// </summary>344 public UnusedSpaceTarget()345 : base()346 {347 }348 349 public sealed override ErasureMethod EffectiveMethod350 {351 get352 {353 if (Method == ErasureMethodRegistrar.Default)354 return base.EffectiveMethod;355 356 return ManagerLibrary.Instance.ErasureMethodRegistrar[357 ManagerLibrary.Settings.DefaultUnusedSpaceErasureMethod];358 }359 }360 361 public override bool SupportsMethod(ErasureMethod method)362 {363 return method == ErasureMethodRegistrar.Default ||364 method is UnusedSpaceErasureMethod;365 }366 367 public override string UIText368 {369 get { return S._("Unused disk space ({0})", Drive); }370 }371 372 public override IErasureTargetConfigurer Configurer373 {374 get { return new UnusedSpaceErasureTargetSettings(); }375 }376 377 /// <summary>378 /// The drive to erase379 /// </summary>380 public string Drive { get; set; }381 382 /// <summary>383 /// Whether cluster tips should be erased.384 /// </summary>385 public bool EraseClusterTips { get; set; }386 }387 388 /// <summary>389 /// Class representing a file to be erased.390 /// </summary>391 [Serializable]392 public class FileTarget : FileSystemObjectTarget393 {394 #region Serialization code395 protected FileTarget(SerializationInfo info, StreamingContext context)396 : base(info, context)397 {398 }399 #endregion400 401 /// <summary>402 /// Constructor.403 /// </summary>404 public FileTarget()405 {406 }407 408 public override IErasureTargetConfigurer Configurer409 {410 get { return new FileErasureTargetSettings(); }411 }412 413 internal override List<string> GetPaths(out long totalSize)414 {415 totalSize = 0;416 List<string> result = new List<string>();417 FileInfo fileInfo = new FileInfo(Path);418 419 if (fileInfo.Exists)420 {421 GetPathADSes(result, out totalSize, Path);422 totalSize += fileInfo.Length;423 }424 425 result.Add(Path);426 return result;427 }428 }429 430 /// <summary>431 /// Represents a folder and its files which are to be erased.432 /// </summary>433 [Serializable]434 public class FolderTarget : FileSystemObjectTarget435 {436 #region Serialization code437 protected FolderTarget(SerializationInfo info, StreamingContext context)438 : base(info, context)439 {440 IncludeMask = (string)info.GetValue("IncludeMask", typeof(string));441 ExcludeMask = (string)info.GetValue("ExcludeMask", typeof(string));442 DeleteIfEmpty = (bool)info.GetValue("DeleteIfEmpty", typeof(bool));443 }444 445 [SecurityPermission(SecurityAction.Demand, SerializationFormatter = true)]446 public override void GetObjectData(SerializationInfo info, StreamingContext context)447 {448 base.GetObjectData(info, context);449 info.AddValue("IncludeMask", IncludeMask);450 info.AddValue("ExcludeMask", ExcludeMask);451 info.AddValue("DeleteIfEmpty", DeleteIfEmpty);452 }453 #endregion454 455 /// <summary>456 /// Constructor.457 /// </summary>458 public FolderTarget()459 {460 IncludeMask = string.Empty;461 ExcludeMask = string.Empty;462 DeleteIfEmpty = true;463 }464 465 public override IErasureTargetConfigurer Configurer466 {467 get { return new FolderErasureTargetSettings(); }468 }469 470 internal override List<string> GetPaths(out long totalSize)471 {472 //Get a list to hold all the resulting paths.473 List<string> result = new List<string>();474 475 //Open the root of the search, including every file matching the pattern476 DirectoryInfo dir = new DirectoryInfo(Path);477 478 //List recursively all the files which match the include pattern.479 FileInfo[] files = GetFiles(dir);480 481 //Then exclude each file and finalize the list and total file size482 totalSize = 0;483 if (ExcludeMask.Length != 0)484 {485 string regex = Regex.Escape(ExcludeMask).Replace("\\*", ".*").486 Replace("\\?", ".");487 Regex excludePattern = new Regex(regex, RegexOptions.IgnoreCase);488 foreach (FileInfo file in files)489 if (file.Exists &&490 (file.Attributes & FileAttributes.ReparsePoint) == 0 &&491 excludePattern.Matches(file.FullName).Count == 0)492 {493 totalSize += file.Length;494 GetPathADSes(result, out totalSize, file.FullName);495 result.Add(file.FullName);496 }497 }498 else499 foreach (FileInfo file in files)500 {501 if (!file.Exists || (file.Attributes & FileAttributes.ReparsePoint) != 0)502 continue;503 504 //Get the size of the file and its ADSes505 totalSize += file.Length;506 long adsesSize = 0;507 GetPathADSes(result, out adsesSize, file.FullName);508 totalSize += adsesSize;509 510 //Append this file to the list of files to erase.511 result.Add(file.FullName);512 }513 514 //Return the filtered list.515 return result;516 }517 518 /// <summary>519 /// Gets all files in the provided directory.520 /// </summary>521 /// <param name="info">The directory to look files in.</param>522 /// <returns>A list of files found in the directory matching the IncludeMask523 /// property.</returns>524 private FileInfo[] GetFiles(DirectoryInfo info)525 {526 List<FileInfo> result = new List<FileInfo>();527 if (info.Exists)528 {529 try530 {531 foreach (DirectoryInfo dir in info.GetDirectories())532 result.AddRange(GetFiles(dir));533 534 if (IncludeMask.Length == 0)535 result.AddRange(info.GetFiles());536 else537 result.AddRange(info.GetFiles(IncludeMask, SearchOption.TopDirectoryOnly));538 }539 catch (UnauthorizedAccessException e)540 {541 Logger.Log(S._("Could not erase files and subfolders in {0} because {1}",542 info.FullName, e.Message), LogLevel.Error);543 }544 }545 546 return result.ToArray();547 }548 549 /// <summary>550 /// A wildcard expression stating the condition for the set of files to include.551 /// The include mask is applied before the exclude mask is applied. If this value552 /// is empty, all files and folders within the folder specified is included.553 /// </summary>554 public string IncludeMask { get; set; }555 556 /// <summary>557 /// A wildcard expression stating the condition for removing files from the set558 /// of included files. If this value is omitted, all files and folders extracted559 /// by the inclusion mask is erased.560 /// </summary>561 public string ExcludeMask { get; set; }562 563 /// <summary>564 /// Determines if Eraser should delete the folder after the erase process.565 /// </summary>566 public bool DeleteIfEmpty { get; set; }567 }568 569 [Serializable]570 public class RecycleBinTarget : FileSystemObjectTarget571 {572 #region Serialization code573 protected RecycleBinTarget(SerializationInfo info, StreamingContext context)574 : base(info, context)575 {576 }577 #endregion578 579 public RecycleBinTarget()580 {581 }582 583 public override IErasureTargetConfigurer Configurer584 {585 get { return null; }586 }587 588 internal override List<string> GetPaths(out long totalSize)589 {590 totalSize = 0;591 List<string> result = new List<string>();592 string[] rootDirectory = new string[] {593 "$RECYCLE.BIN",594 "RECYCLER"595 };596 597 foreach (DriveInfo drive in DriveInfo.GetDrives())598 {599 foreach (string rootDir in rootDirectory)600 {601 DirectoryInfo dir = new DirectoryInfo(602 System.IO.Path.Combine(603 System.IO.Path.Combine(drive.Name, rootDir),604 System.Security.Principal.WindowsIdentity.GetCurrent().605 User.ToString()));606 if (!dir.Exists)607 continue;608 609 GetRecyclerFiles(dir, result, ref totalSize);610 }611 }612 613 return result;614 }615 616 /// <summary>617 /// Retrieves all files within this folder, without exclusions.618 /// </summary>619 /// <param name="info">The DirectoryInfo object representing the folder to traverse.</param>620 /// <param name="paths">The list of files to store path information in.</param>621 /// <param name="totalSize">Receives the total size of the files.</param>622 private void GetRecyclerFiles(DirectoryInfo info, List<string> paths,623 ref long totalSize)624 {625 try626 {627 foreach (FileInfo fileInfo in info.GetFiles())628 {629 if (!fileInfo.Exists || (fileInfo.Attributes & FileAttributes.ReparsePoint) != 0)630 continue;631 632 long adsSize = 0;633 GetPathADSes(paths, out adsSize, fileInfo.FullName);634 totalSize += adsSize;635 totalSize += fileInfo.Length;636 paths.Add(fileInfo.FullName);637 }638 639 foreach (DirectoryInfo directoryInfo in info.GetDirectories())640 if ((directoryInfo.Attributes & FileAttributes.ReparsePoint) == 0)641 GetRecyclerFiles(directoryInfo, paths, ref totalSize);642 }643 catch (UnauthorizedAccessException e)644 {645 Logger.Log(e.Message, LogLevel.Error);646 }647 }648 649 /// <summary>650 /// Retrieves the text to display representing this task.651 /// </summary>652 public override string UIText653 {654 get655 {656 return S._("Recycle Bin");657 }658 }659 200 } 660 201 … … 716 257 { 717 258 item.Task = owner; 259 item.OnProgressChanged = owner.OnProgressChanged; 718 260 list.Add(item); 719 261 } … … 771 313 { 772 314 item.Task = owner; 315 item.OnProgressChanged = owner.OnProgressChanged; 773 316 list.Insert(index, item); 774 317 } … … 805 348 owner = value; 806 349 foreach (ErasureTarget target in list) 350 { 807 351 target.Task = owner; 352 target.OnProgressChanged = owner.OnProgressChanged; 353 } 808 354 } 809 355 } -
trunk/eraser/Eraser.Manager/ManagerLibrary.cs
r1802 r2036 93 93 94 94 /// <summary> 95 /// The global instance of the Erasure method manager.95 /// The global instance of the Erasure method Manager. 96 96 /// </summary> 97 97 public ErasureMethodRegistrar ErasureMethodRegistrar { get; private set; } 98 99 /// <summary> 100 /// The global instance of the Erasure target Manager. 101 /// </summary> 102 public ErasureTargetRegistrar ErasureTargetRegistrar { get; private set; } 98 103 99 104 /// <summary> -
trunk/eraser/Eraser.Manager/Strings.en.resx
r2034 r2036 118 118 <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> 119 119 </resheader> 120 <data name="The program does not have the required permissions to erase the unused space on disk. Run the program as an administrator and retry the operation." xml:space="preserve"> 121 <value>The program does not have the required permissions to erase the unused space on disk. Run the program as an administrator and retry the operation.</value> 122 </data> 123 <data name="The program does not have the required permissions to erase the unused space on disk." xml:space="preserve"> 124 <value>The program does not have the required permissions to erase the unused space on disk.</value> 125 </data> 126 <data name="This computer has had System Restore or Volume Shadow Copies enabled. This may allow copies of files stored on the disk to be recovered and pose a security concern." xml:space="preserve"> 127 <value>This computer has had System Restore or Volume Shadow Copies enabled. This may allow copies of files stored on the disk to be recovered and pose a security concern.</value> 128 </data> 129 <data name="The drive {0} has disk quotas active. This will prevent the complete erasure of unused space and may pose a security concern." xml:space="preserve"> 130 <value>The drive {0} has disk quotas active. This will prevent the complete erasure of unused space and may pose a security concern.</value> 131 </data> 132 <data name="Searching for files' cluster tips..." xml:space="preserve"> 133 <value>Searching for files' cluster tips...</value> 134 </data> 135 <data name="The task was cancelled." xml:space="preserve"> 136 <value>The task was cancelled.</value> 137 </data> 138 <data name="Erasing cluster tips..." xml:space="preserve"> 139 <value>Erasing cluster tips...</value> 140 </data> 141 <data name="Erasing unused space..." xml:space="preserve"> 142 <value>Erasing unused space..</value> 143 </data> 144 <data name="Old resident file system table files" xml:space="preserve"> 145 <value>Old resident file system table files</value> 146 </data> 147 <data name="Removing temporary files..." xml:space="preserve"> 148 <value>Removing temporary files...</value> 149 </data> 150 <data name="Erasing unused directory structures..." xml:space="preserve"> 151 <value>Erasing unused directory structures...</value> 152 </data> 153 <data name="The file {0} was not erased as the file does not exist." xml:space="preserve"> 154 <value>The file {0} was not erased as the file does not exist.</value> 155 </data> 156 <data name="Erasing files..." xml:space="preserve"> 157 <value>Erasing files...</value> 158 </data> 159 <data name="The file {0} could not be erased because the file was either compressed, encrypted or a sparse file." xml:space="preserve"> 160 <value>The file {0} could not be erased because the file was either compressed, encrypted or a sparse file.</value> 161 </data> 162 <data name="The file {0} could not be erased because the file's permissions prevent access to the file." xml:space="preserve"> 163 <value>The file {0} could not be erased because the file's permissions prevent access to the file.</value> 164 </data> 165 <data name="Could not force closure of file \"{0}\" {1}(locked by {0})" xml:space="preserve"> 166 <value>Could not force closure of file \"{0}\" {1}(locked by {0})</value> 167 </data> 168 <data name="Removing folders..." xml:space="preserve"> 169 <value>Removing folders...</value> 170 </data> 171 <data name="Emptying recycle bin..." xml:space="preserve"> 172 <value>Emptying recycle bin...</value> 120 <data name="{0} (1 pass)" xml:space="preserve"> 121 <value>{0} (1 pass)</value> 122 </data> 123 <data name="{0} ({1} passes)" xml:space="preserve"> 124 <value>{0} ({1} passes)</value> 125 </data> 126 <data name="Random" xml:space="preserve"> 127 <value>Random</value> 128 </data> 129 <data name="(default)" xml:space="preserve"> 130 <value>(default)</value> 173 131 </data> 174 132 <data name="The selected erasure method is not supported for this erasure target." xml:space="preserve"> 175 133 <value>The selected erasure method is not supported for this erasure target.</value> 176 134 </data> 177 <data name="Unused disk space ({0})" xml:space="preserve">178 <value>Unused disk space ({0})</value>179 </data>180 <data name="Could not erase files and subfolders in {0} because {1}" xml:space="preserve">181 <value>Could not erase files and subfolders in {0} because {1}</value>182 </data>183 <data name="Recycle Bin" xml:space="preserve">184 <value>Recycle Bin</value>185 </data>186 135 <data name="EntropySource GUID not found: {0}" xml:space="preserve"> 187 136 <value>EntropySource GUID not found: {0}</value> … … 193 142 <value>PRNG not found: {0}</value> 194 143 </data> 195 <data name="Invalid file path" xml:space="preserve">196 <value>Invalid file path</value>197 </data>198 144 <data name="Plausible deniability was selected, but no decoy files were found. The current file has been only replaced with random data." xml:space="preserve"> 199 145 <value>Plausible deniability was selected, but no decoy files were found. The current file has been only replaced with random data.</value> … … 202 148 <value>The file system on the drive {0} is not supported.</value> 203 149 </data> 204 <data name="Invalid folder path" xml:space="preserve"> 205 <value>Invalid folder path</value> 206 </data> 207 <data name="The path you selected is invalid." xml:space="preserve"> 208 <value>The path you selected is invalid.</value> 150 <data name="Could not load the plugin {0}.\n\nThe error returned was: {1}" xml:space="preserve"> 151 <value>Could not load the plugin {0}.\n\nThe error returned was: {1}</value> 209 152 </data> 210 153 <data name="Eraser" xml:space="preserve"> 211 154 <value>Eraser</value> 212 155 </data> 213 <data name="{0} (1 pass)" xml:space="preserve">214 <value>{0} (1 pass)</value>215 </data>216 <data name="{0} ({1} passes)" xml:space="preserve">217 <value>{0} ({1} passes)</value>218 </data>219 <data name="Random" xml:space="preserve">220 <value>Random</value>221 </data>222 <data name="(default)" xml:space="preserve">223 <value>(default)</value>224 </data>225 <data name="Could not load the plugin {0}.\n\nThe error returned was: {1}" xml:space="preserve">226 <value>Could not load the plugin {0}.\n\nThe error returned was: {1}</value>227 </data>228 156 <data name="Running on restart" xml:space="preserve"> 229 157 <value>Running on restart</value> -
trunk/eraser/Eraser.Manager/Strings.it.resx
r2034 r2036 118 118 <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> 119 119 </resheader> 120 <data name="The program does not have the required permissions to erase the unused space on disk. Run the program as an administrator and retry the operation." xml:space="preserve"> 121 <value>Il programma non ha i permessi richiesti per pulire lo spazio non utilizzato sul disco. Eseguire il programma come amministratore e riprovare l'operazione</value> 122 </data> 123 <data name="The program does not have the required permissions to erase the unused space on disk." xml:space="preserve"> 120 <data name="{0} (1 pass)" xml:space="preserve"> 121 <value>{0} (1 passo)</value> 122 </data> 123 <data name="{0} ({1} passes)" xml:space="preserve"> 124 <value>{0} ({1} passi)</value> 125 </data> 126 <data name="Random" xml:space="preserve"> 127 <value>Casuale</value> 128 </data> 129 <data name="(default)" xml:space="preserve"> 124 130 <value>(Untranslated)</value> 125 </data>126 <data name="This computer has had System Restore or Volume Shadow Copies enabled. This may allow copies of files stored on the disk to be recovered and pose a security concern." xml:space="preserve">127 <value>(Untranslated)</value>128 </data>129 <data name="The drive {0} has disk quotas active. This will prevent the complete erasure of unused space and may pose a security concern." xml:space="preserve">130 <value>Il disco {0} ha il disk quota attivo. Ciò impedisce la pulitura completa dello spazio non usato e comporta problemi di sicurezza.</value>131 </data>132 <data name="Searching for files' cluster tips..." xml:space="preserve">133 <value>Ricerca dei cluster tips dei files...</value>134 </data>135 <data name="The task was cancelled." xml:space="preserve">136 <value>L'operazione è stata cancellata.</value>137 </data>138 <data name="Erasing cluster tips..." xml:space="preserve">139 <value>Pulizia dei cluster tips...</value>140 </data>141 <data name="Erasing unused space..." xml:space="preserve">142 <value>Pulizia dello spazioni non usato...</value>143 </data>144 <data name="Old resident file system table files" xml:space="preserve">145 <value>Vecchia tabella di sistema dei file residenti</value>146 </data>147 <data name="Removing temporary files..." xml:space="preserve">148 <value>Rimozione files temporanei...</value>149 </data>150 <data name="Erasing unused directory structures..." xml:space="preserve">151 <value>Pulizia delle strutture di cartelle non usate...</value>152 </data>153 <data name="The file {0} was not erased as the file does not exist." xml:space="preserve">154 <value>Il file {0} non è stato pulito perchè il file non esiste.</value>155 </data>156 <data name="Erasing files..." xml:space="preserve">157 <value>Pulizia dei files...</value>158 </data>159 <data name="The file {0} could not be erased because the file was either compressed, encrypted or a sparse file." xml:space="preserve">160 <value>Il file {0} non può essere pulito perchè è compresso, crittato o distribuito.</value>161 </data>162 <data name="The file {0} could not be erased because the file's permissions prevent access to the file." xml:space="preserve">163 <value>Il file {0} non può essere pulito perchè i permessi su di esso ne impediscono l'accesso.</value>164 </data>165 <data name="Could not force closure of file \"{0}\" {1}(locked by {0})" xml:space="preserve">166 <value>(Untranslated)</value>167 </data>168 <data name="Removing folders..." xml:space="preserve">169 <value>Rimozione cartelle...</value>170 </data>171 <data name="Emptying recycle bin..." xml:space="preserve">172 <value>Pulizia del cestino...</value>173 131 </data> 174 132 <data name="The selected erasure method is not supported for this erasure target." xml:space="preserve"> 175 133 <value>(Untranslated)</value> 176 134 </data> 177 <data name="Unused disk space ({0})" xml:space="preserve">178 <value>Spazio disco inutilizzato ({0})</value>179 </data>180 <data name="Could not erase files and subfolders in {0} because {1}" xml:space="preserve">181 <value>Impossibile pulire file e sottocartelle in {0} a causa di {1}</value>182 </data>183 <data name="Recycle Bin" xml:space="preserve">184 <value>Cestino</value>185 </data>186 135 <data name="EntropySource GUID not found: {0}" xml:space="preserve"> 187 136 <value>EntropySource GUID non trovato: {0}</value> … … 193 142 <value>PRNG not found: {0}</value> 194 143 </data> 195 <data name="Invalid file path" xml:space="preserve">196 <value>(Untranslated)</value>197 </data>198 144 <data name="Plausible deniability was selected, but no decoy files were found. The current file has been only replaced with random data." xml:space="preserve"> 199 145 <value>E' stata selezionata una "Plausible deniability", but no decoy files were found. The current file has been only replaced with random data.</value> … … 202 148 <value>Il tipo di file system sul disco {0} non è supportato.</value> 203 149 </data> 204 <data name="Invalid folder path" xml:space="preserve"> 205 <value>(Untranslated)</value> 206 </data> 207 <data name="The path you selected is invalid." xml:space="preserve"> 208 <value>(Untranslated)</value> 150 <data name="Could not load the plugin {0}.\n\nThe error returned was: {1}" xml:space="preserve"> 151 <value>Impossibile caricare il plugin {0}.\n\nL'errore ricevuto è stato: {1}</value> 209 152 </data> 210 153 <data name="Eraser" xml:space="preserve"> 211 154 <value>(Untranslated)</value> 212 155 </data> 213 <data name="{0} (1 pass)" xml:space="preserve">214 <value>{0} (1 passo)</value>215 </data>216 <data name="{0} ({1} passes)" xml:space="preserve">217 <value>{0} ({1} passi)</value>218 </data>219 <data name="Random" xml:space="preserve">220 <value>Casuale</value>221 </data>222 <data name="(default)" xml:space="preserve">223 <value>(Untranslated)</value>224 </data>225 <data name="Could not load the plugin {0}.\n\nThe error returned was: {1}" xml:space="preserve">226 <value>Impossibile caricare il plugin {0}.\n\nL'errore ricevuto è stato: {1}</value>227 </data>228 156 <data name="Running on restart" xml:space="preserve"> 229 157 <value>Esecuzione al riavvio</value> -
trunk/eraser/Eraser.Manager/Strings.nl.resx
r2034 r2036 118 118 <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> 119 119 </resheader> 120 <data name="The program does not have the required permissions to erase the unused space on disk. Run the program as an administrator and retry the operation." xml:space="preserve"> 121 <value>(Untranslated)</value> 122 </data> 123 <data name="The program does not have the required permissions to erase the unused space on disk." xml:space="preserve"> 124 <value>(Untranslated)</value> 125 </data> 126 <data name="This computer has had System Restore or Volume Shadow Copies enabled. This may allow copies of files stored on the disk to be recovered and pose a security concern." xml:space="preserve"> 127 <value>(Untranslated)</value> 128 </data> 129 <data name="The drive {0} has disk quotas active. This will prevent the complete erasure of unused space and may pose a security concern." xml:space="preserve"> 130 <value>(Untranslated)</value> 131 </data> 132 <data name="Searching for files' cluster tips..." xml:space="preserve"> 133 <value>(Untranslated)</value> 134 </data> 135 <data name="The task was cancelled." xml:space="preserve"> 136 <value>(Untranslated)</value> 137 </data> 138 <data name="Erasing cluster tips..." xml:space="preserve"> 139 <value>(Untranslated)</value> 140 </data> 141 <data name="Erasing unused space..." xml:space="preserve"> 142 <value>(Untranslated)</value> 143 </data> 144 <data name="Old resident file system table files" xml:space="preserve"> 145 <value>(Untranslated)</value> 146 </data> 147 <data name="Removing temporary files..." xml:space="preserve"> 148 <value>(Untranslated)</value> 149 </data> 150 <data name="Erasing unused directory structures..." xml:space="preserve"> 151 <value>(Untranslated)</value> 152 </data> 153 <data name="The file {0} was not erased as the file does not exist." xml:space="preserve"> 154 <value>(Untranslated)</value> 155 </data> 156 <data name="Erasing files..." xml:space="preserve"> 157 <value>(Untranslated)</value> 158 </data> 159 <data name="The file {0} could not be erased because the file was either compressed, encrypted or a sparse file." xml:space="preserve"> 160 <value>(Untranslated)</value> 161 </data> 162 <data name="The file {0} could not be erased because the file's permissions prevent access to the file." xml:space="preserve"> 163 <value>(Untranslated)</value> 164 </data> 165 <data name="Could not force closure of file \"{0}\" {1}(locked by {0})" xml:space="preserve"> 166 <value>(Untranslated)</value> 167 </data> 168 <data name="Removing folders..." xml:space="preserve"> 169 <value>(Untranslated)</value> 170 </data> 171 <data name="Emptying recycle bin..." xml:space="preserve"> 120 <data name="{0} (1 pass)" xml:space="preserve"> 121 <value>(Untranslated)</value> 122 </data> 123 <data name="{0} ({1} passes)" xml:space="preserve"> 124 <value>(Untranslated)</value> 125 </data> 126 <data name="Random" xml:space="preserve"> 127 <value>(Untranslated)</value> 128 </data> 129 <data name="(default)" xml:space="preserve"> 172 130 <value>(Untranslated)</value> 173 131 </data> … … 175 133 <value>(Untranslated)</value> 176 134 </data> 177 <data name="Unused disk space ({0})" xml:space="preserve">178 <value>(Untranslated)</value>179 </data>180 <data name="Could not erase files and subfolders in {0} because {1}" xml:space="preserve">181 <value>(Untranslated)</value>182 </data>183 <data name="Recycle Bin" xml:space="preserve">184 <value>(Untranslated)</value>185 </data>186 135 <data name="EntropySource GUID not found: {0}" xml:space="preserve"> 187 136 <value>(Untranslated)</value> … … 193 142 <value>(Untranslated)</value> 194 143 </data> 195 <data name="Invalid file path" xml:space="preserve">196 <value>(Untranslated)</value>197 </data>198 144 <data name="Plausible deniability was selected, but no decoy files were found. The current file has been only replaced with random data." xml:space="preserve"> 199 145 <value>(Untranslated)</value> … … 202 148 <value>(Untranslated)</value> 203 149 </data> 204 <data name="Invalid folder path" xml:space="preserve"> 205 <value>(Untranslated)</value> 206 </data> 207 <data name="The path you selected is invalid." xml:space="preserve"> 150 <data name="Could not load the plugin {0}.\n\nThe error returned was: {1}" xml:space="preserve"> 208 151 <value>(Untranslated)</value> 209 152 </data> … … 211 154 <value>(Untranslated)</value> 212 155 </data> 213 <data name="{0} (1 pass)" xml:space="preserve">214 <value>(Untranslated)</value>215 </data>216 <data name="{0} ({1} passes)" xml:space="preserve">217 <value>(Untranslated)</value>218 </data>219 <data name="Random" xml:space="preserve">220 <value>(Untranslated)</value>221 </data>222 <data name="(default)" xml:space="preserve">223 <value>(Untranslated)</value>224 </data>225 <data name="Could not load the plugin {0}.\n\nThe error returned was: {1}" xml:space="preserve">226 <value>(Untranslated)</value>227 </data>228 156 <data name="Running on restart" xml:space="preserve"> 229 157 <value>(Untranslated)</value> -
trunk/eraser/Eraser.Manager/Strings.pl.resx
r2034 r2036 118 118 <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> 119 119 </resheader> 120 <data name="The program does not have the required permissions to erase the unused space on disk. Run the program as an administrator and retry the operation." xml:space="preserve"> 121 <value>Program nie wystarczających praw dostępu do wymazania nieużywanego miejsca dysku. Uruchom program jako administrator i powtórz czynność.</value> 122 </data> 123 <data name="The program does not have the required permissions to erase the unused space on disk." xml:space="preserve"> 124 <value>Program nie wystarczających praw dostępu do wymazania nieużywanego miejsca dysku.</value> 125 </data> 126 <data name="This computer has had System Restore or Volume Shadow Copies enabled. This may allow copies of files stored on the disk to be recovered and pose a security concern." xml:space="preserve"> 127 <value>Komputer miał włączoną opcję przywracania systemu lub kopiowania woluminów w tle. To mogło stworzyć kopię plików przechowywanych na dysku oraz ich przywrócenie, co powinno alarmować o zagrożonym bezpieczeństwie.</value> 128 </data> 129 <data name="The drive {0} has disk quotas active. This will prevent the complete erasure of unused space and may pose a security concern." xml:space="preserve"> 130 <value>Dysk {0} ma włączone ograniczenie rozmiaru (quota). Uniemożliwi to całkowite wymazanie nieużywanego miejsca, co powinno alarmować o zagrożonym bezpieczeństwie.</value> 131 </data> 132 <data name="Searching for files' cluster tips..." xml:space="preserve"> 133 <value>Poszukiwanie resztek klastrów...</value> 134 </data> 135 <data name="The task was cancelled." xml:space="preserve"> 136 <value>Zadanie zostało anulowane.</value> 137 </data> 138 <data name="Erasing cluster tips..." xml:space="preserve"> 139 <value>Wymazywanie resztek klastrów...</value> 140 </data> 141 <data name="Erasing unused space..." xml:space="preserve"> 142 <value>Wymazywanie nieużywanego miejsca...</value> 143 </data> 144 <data name="Old resident file system table files" xml:space="preserve"> 145 <value>Stara rezydentna tabela systemu plików</value> 146 </data> 147 <data name="Removing temporary files..." xml:space="preserve"> 148 <value>Usuwanie plików tymczasowych...</value> 149 </data> 150 <data name="Erasing unused directory structures..." xml:space="preserve"> 151 <value>Wymazywanie nieużywanej struktury katalogów...</value> 152 </data> 153 <data name="The file {0} was not erased as the file does not exist." xml:space="preserve"> 154 <value>Plik {0} nie został wymazany, bo nie istnieje.</value> 155 </data> 156 <data name="Erasing files..." xml:space="preserve"> 157 <value>Wymazywanie plików...</value> 158 </data> 159 <data name="The file {0} could not be erased because the file was either compressed, encrypted or a sparse file." xml:space="preserve"> 160 <value>Plik {0} nie mógł być wymazany, bo był skompresowany, zaszyfrowany lub rozrzedzony.</value> 161 </data> 162 <data name="The file {0} could not be erased because the file's permissions prevent access to the file." xml:space="preserve"> 163 <value>Plik {0} nie mógł być wymazany z powodu ograniczonego prawa dostępu do pliku.</value> 164 </data> 165 <data name="Could not force closure of file \"{0}\" {1}(locked by {0})" xml:space="preserve"> 166 <value>(Untranslated)</value> 167 </data> 168 <data name="Removing folders..." xml:space="preserve"> 169 <value>Usuwanie katalogów...</value> 170 </data> 171 <data name="Emptying recycle bin..." xml:space="preserve"> 172 <value>Opróżnianie kosza...</value> 120 <data name="{0} (1 pass)" xml:space="preserve"> 121 <value>{0} (1 przebieg)</value> 122 </data> 123 <data name="{0} ({1} passes)" xml:space="preserve"> 124 <value>{0} ({1} przebiegów)</value> 125 </data> 126 <data name="Random" xml:space="preserve"> 127 <value>Losowy</value> 128 </data> 129 <data name="(default)" xml:space="preserve"> 130 <value>(domyślny)</value> 173 131 </data> 174 132 <data name="The selected erasure method is not supported for this erasure target." xml:space="preserve"> 175 133 <value>(Untranslated)</value> 176 134 </data> 177 <data name="Unused disk space ({0})" xml:space="preserve">178 <value>Nieużywane miejsce dysku ({0})</value>179 </data>180 <data name="Could not erase files and subfolders in {0} because {1}" xml:space="preserve">181 <value>Nie można było wymazać plików i podkatalogów w {0} ponieważ {1}</value>182 </data>183 <data name="Recycle Bin" xml:space="preserve">184 <value>Kosz</value>185 </data>186 135 <data name="EntropySource GUID not found: {0}" xml:space="preserve"> 187 136 <value>Nie znaleziono źródła entropii GUID: {0}</value> … … 193 142 <value>Nie znaleziono PRNG: {0}</value> 194 143 </data> 195 <data name="Invalid file path" xml:space="preserve">196 <value>(Untranslated)</value>197 </data>198 144 <data name="Plausible deniability was selected, but no decoy files were found. The current file has been only replaced with random data." xml:space="preserve"> 199 145 <value>Wybrano wymazywanie z opcją prawdopodobnego zaprzeczenia, ale nie wybrano żadnych plików na przynęte. Obecny plik został zastąpiony danymi losowymi.</value> … … 202 148 <value>System plików napędu {0} nie jest wspierany.</value> 203 149 </data> 204 <data name="Invalid folder path" xml:space="preserve"> 205 <value>(Untranslated)</value> 206 </data> 207 <data name="The path you selected is invalid." xml:space="preserve"> 208 <value>(Untranslated)</value> 150 <data name="Could not load the plugin {0}.\n\nThe error returned was: {1}" xml:space="preserve"> 151 <value>Nie można było załadować wtyczki {0}.\n\nWystąpił błąd: {1}</value> 209 152 </data> 210 153 <data name="Eraser" xml:space="preserve"> 211 154 <value>Eraser</value> 212 155 </data> 213 <data name="{0} (1 pass)" xml:space="preserve">214 <value>{0} (1 przebieg)</value>215 </data>216 <data name="{0} ({1} passes)" xml:space="preserve">217 <value>{0} ({1} przebiegów)</value>218 </data>219 <data name="Random" xml:space="preserve">220 <value>Losowy</value>221 </data>222 <data name="(default)" xml:space="preserve">223 <value>(domyślny)</value>224 </data>225 <data name="Could not load the plugin {0}.\n\nThe error returned was: {1}" xml:space="preserve">226 <value>Nie można było załadować wtyczki {0}.\n\nWystąpił błąd: {1}</value>227 </data>228 156 <data name="Running on restart" xml:space="preserve"> 229 157 <value>Uruchomienie po restarcie</value> -
trunk/eraser/Eraser.Manager/Strings.resx
r2034 r2036 118 118 <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> 119 119 </resheader> 120 <data name="The program does not have the required permissions to erase the unused space on disk. Run the program as an administrator and retry the operation." xml:space="preserve"> 121 <value>The program does not have the required permissions to erase the unused space on disk. Run the program as an administrator and retry the operation.</value> 122 </data> 123 <data name="The program does not have the required permissions to erase the unused space on disk." xml:space="preserve"> 124 <value>The program does not have the required permissions to erase the unused space on disk.</value> 125 </data> 126 <data name="This computer has had System Restore or Volume Shadow Copies enabled. This may allow copies of files stored on the disk to be recovered and pose a security concern." xml:space="preserve"> 127 <value>This computer has had System Restore or Volume Shadow Copies enabled. This may allow copies of files stored on the disk to be recovered and pose a security concern.</value> 128 </data> 129 <data name="The drive {0} has disk quotas active. This will prevent the complete erasure of unused space and may pose a security concern." xml:space="preserve"> 130 <value>The drive {0} has disk quotas active. This will prevent the complete erasure of unused space and may pose a security concern.</value> 131 </data> 132 <data name="Searching for files' cluster tips..." xml:space="preserve"> 133 <value>Searching for files' cluster tips...</value> 134 </data> 135 <data name="The task was cancelled." xml:space="preserve"> 136 <value>The task was cancelled.</value> 137 </data> 138 <data name="Erasing cluster tips..." xml:space="preserve"> 139 <value>Erasing cluster tips...</value> 140 </data> 141 <data name="Erasing unused space..." xml:space="preserve"> 142 <value>Erasing unused space...</value> 143 </data> 144 <data name="Old resident file system table files" xml:space="preserve"> 145 <value>Old resident file system table files</value> 146 </data> 147 <data name="Removing temporary files..." xml:space="preserve"> 148 <value>Removing temporary files...</value> 149 </data> 150 <data name="Erasing unused directory structures..." xml:space="preserve"> 151 <value>Erasing unused directory structures...</value> 152 </data> 153 <data name="The file {0} was not erased as the file does not exist." xml:space="preserve"> 154 <value>The file {0} was not erased as the file does not exist.</value> 155 </data> 156 <data name="Erasing files..." xml:space="preserve"> 157 <value>Erasing files...</value> 158 </data> 159 <data name="The file {0} could not be erased because the file was either compressed, encrypted or a sparse file." xml:space="preserve"> 160 <value>The file {0} could not be erased because the file was either compressed, encrypted or a sparse file.</value> 161 </data> 162 <data name="The file {0} could not be erased because the file's permissions prevent access to the file." xml:space="preserve"> 163 <value>The file {0} could not be erased because the file's permissions prevent access to the file.</value> 164 </data> 165 <data name="Could not force closure of file \"{0}\" {1}(locked by {0})" xml:space="preserve"> 166 <value>Could not force closure of file \"{0}\" {1}(locked by {0})</value> 167 </data> 168 <data name="Removing folders..." xml:space="preserve"> 169 <value>Removing folders...</value> 170 </data> 171 <data name="Emptying recycle bin..." xml:space="preserve"> 172 <value>Emptying recycle bin...</value> 120 <data name="{0} (1 pass)" xml:space="preserve"> 121 <value>{0} (1 pass)</value> 122 </data> 123 <data name="{0} ({1} passes)" xml:space="preserve"> 124 <value>{0} ({1} passes)</value> 125 </data> 126 <data name="Random" xml:space="preserve"> 127 <value>Random</value> 128 </data> 129 <data name="(default)" xml:space="preserve"> 130 <value>(default)</value> 173 131 </data> 174 132 <data name="The selected erasure method is not supported for this erasure target." xml:space="preserve"> 175 133 <value>The selected erasure method is not supported for this erasure target.</value> 176 134 </data> 177 <data name="Unused disk space ({0})" xml:space="preserve">178 <value>Unused disk space ({0})</value>179 </data>180 <data name="Could not erase files and subfolders in {0} because {1}" xml:space="preserve">181 <value>Could not erase files and subfolders in {0} because {1}</value>182 </data>183 <data name="Recycle Bin" xml:space="preserve">184 <value>Recycle Bin</value>185 </data>186 135 <data name="EntropySource GUID not found: {0}" xml:space="preserve"> 187 136 <value>EntropySource GUID not found: {0}</value> … … 193 142 <value>PRNG not found: {0}</value> 194 143 </data> 195 <data name="Invalid file path" xml:space="preserve">196 <value>Invalid file path</value>197 </data>198 144 <data name="Plausible deniability was selected, but no decoy files were found. The current file has been only replaced with random data." xml:space="preserve"> 199 145 <value>Plausible deniability was selected, but no decoy files were found. The current file has been only replaced with random data.</value> … … 202 148 <value>The file system on the drive {0} is not supported.</value> 203 149 </data> 204 <data name="Invalid folder path" xml:space="preserve"> 205 <value>Invalid folder path</value> 206 </data> 207 <data name="The path you selected is invalid." xml:space="preserve"> 208 <value>The path you selected is invalid.</value> 150 <data name="Could not load the plugin {0}.\n\nThe error returned was: {1}" xml:space="preserve"> 151 <value>Could not load the plugin {0}.\n\nThe error returned was: {1}</value> 209 152 </data> 210 153 <data name="Eraser" xml:space="preserve"> 211 154 <value>Eraser</value> 212 155 </data> 213 <data name="{0} (1 pass)" xml:space="preserve">214 <value>{0} (1 pass)</value>215 </data>216 <data name="{0} ({1} passes)" xml:space="preserve">217 <value>{0} ({1} passes)</value>218 </data>219 <data name="Random" xml:space="preserve">220 <value>Random</value>221 </data>222 <data name="(default)" xml:space="preserve">223 <value>(default)</value>224 </data>225 <data name="Could not load the plugin {0}.\n\nThe error returned was: {1}" xml:space="preserve">226 <value>Could not load the plugin {0}.\n\nThe error returned was: {1}</value>227 </data>228 156 <data name="Running on restart" xml:space="preserve"> 229 157 <value>Running on restart</value>
Note: See TracChangeset
for help on using the changeset viewer.
