1394 User::LeaveIfError(iSharableFS.Connect()); |
1394 User::LeaveIfError(iSharableFS.Connect()); |
1395 User::LeaveIfError(iSharableFS.ShareProtected()); |
1395 User::LeaveIfError(iSharableFS.ShareProtected()); |
1396 TInt err = aSharableFile.Open(iSharableFS,aFileName,EFileShareReadersOnly); |
1396 TInt err = aSharableFile.Open(iSharableFS,aFileName,EFileShareReadersOnly); |
1397 if (err == KErrInUse) |
1397 if (err == KErrInUse) |
1398 { |
1398 { |
1399 User::LeaveIfError(aSharableFile.Open(iSharableFS,aFileName,EFileShareReadersOrWriters)); |
1399 err = aSharableFile.Open( iSharableFS,aFileName,EFileShareReadersOrWriters ); |
1400 } |
1400 } |
1401 else if ( err == KErrTooBig ) |
1401 else if ( err == KErrTooBig ) |
1402 { |
1402 { |
1403 RFile64* file64 = NULL; |
1403 RFile64* file64 = NULL; |
1404 file64 = static_cast<RFile64*> (&aSharableFile); |
1404 file64 = static_cast<RFile64*> (&aSharableFile); |
1405 if( file64 != NULL ) |
1405 if( file64 != NULL ) |
1406 { |
1406 { |
1407 err = file64->Open(iSharableFS,aFileName,EFileShareReadersOnly); |
1407 err = file64->Open(iSharableFS,aFileName,EFileShareReadersOnly); |
1408 if( err == KErrInUse ) |
1408 if( err == KErrInUse ) |
1409 { |
1409 { |
1410 User::LeaveIfError(aSharableFile.Open(iSharableFS,aFileName,EFileShareReadersOrWriters)); |
1410 err = aSharableFile.Open( iSharableFS,aFileName,EFileShareReadersOrWriters ); |
1411 } |
1411 } |
1412 } |
1412 } |
1413 } |
1413 } |
1414 error = err; // Otherwise possible KErrNotReady caused by hotswap leads to crash later |
1414 error = err; // Otherwise possible KErrNotReady caused by hotswap leads to crash later |
1415 } |
1415 } |