Changeset 1673


Ignore:
Timestamp:
1/25/2010 6:16:11 AM (5 years ago)
Author:
lowjoel
Message:

When we check for errors upon opening a file stream to test for existence, if we get a sharing violation the file definitely does exist. Fixes FileLoadException? thrown when users try to erase a file in which a file is open.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/eraser6/6.0/Eraser.Util/StreamInfo.cs

    r1637 r1673  
    134134                    if (!handle.IsInvalid) 
    135135                        return true; 
    136                     else if (Marshal.GetLastWin32Error() == 2 /*ERROR_FILE_NOT_FOUND*/ || 
    137                         Marshal.GetLastWin32Error() == 3 /*ERROR_PATH_NOT_FOUND*/) 
    138                         return false; 
    139  
     136                    else 
     137                        switch (Marshal.GetLastWin32Error()) 
     138                        { 
     139                            case 2: /*ERROR_FILE_NOT_FOUND*/ 
     140                            case 3: /*ERROR_PATH_NOT_FOUND*/ 
     141                                return false; 
     142 
     143                            case 32: /*ERROR_SHARING_VIOLATION*/ 
     144                                return true; 
     145                        } 
     146     
    140147                    throw KernelApi.GetExceptionForWin32Error(Marshal.GetLastWin32Error()); 
    141148                } 
Note: See TracChangeset for help on using the changeset viewer.