Changeset 2033 for trunk/eraser


Ignore:
Timestamp:
5/4/2010 12:16:14 AM (4 years ago)
Author:
lowjoel
Message:

Create a utility OpenHandle?.Close function which is shorthand for closing all file handles with a given path.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/eraser/Eraser.Manager/ErasureTarget.cs

    r2028 r2033  
    253253                    throw; 
    254254 
    255                 foreach (OpenHandle handle in OpenHandle.Items) 
    256                     if (handle.Path == file && handle.Close()) 
     255                StringBuilder processStr = new StringBuilder(); 
     256                foreach (OpenHandle handle in OpenHandle.Close(file)) 
     257                { 
     258                    try 
    257259                    { 
    258                         GetPathADSes(list, out totalSize, file); 
    259                         return; 
     260                        processStr.AppendFormat( 
     261                            System.Globalization.CultureInfo.InvariantCulture, 
     262                            "{0}, ", (System.Diagnostics.Process.GetProcessById(handle.ProcessId)).MainModule.FileName); 
    260263                    } 
     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                else 
     278                    throw; 
    261279            } 
    262280            catch (UnauthorizedAccessException e) 
Note: See TracChangeset for help on using the changeset viewer.