How to Retain/Preserve "Modified By" while checking in a file
SPSite mySite = new SPSite(“<SiteURL>”); SPWeb myWeb = mySite.OpenWeb(); SPFolder myList = myWeb.Folders["<DocLibName>"]; SPFile myFile = myList.Files[0]; SPUser myUser = myWeb.Users["<User_Name>"]; CheckInFileByUser(myFile, “Checkin Comments”, SPCheckinType.MajorCheckIn, myUser); public static void CheckInFileByUser(SPFile file, string checkinComment,SPCheckinType checkinType,SPUser modifiedByUser) { MethodInfo mi = typeof(SPFile).GetMethod(“CheckIn”,BindingFlags.Instance | BindingFlags.NonPublic, null, new Type[] { typeof(string), typeof(SPCheckinType), typeof(bool), typeof(SPUser) }, null); try { mi.Invoke( file, new object[] { checkinComment, checkinType, false, modifiedByUser }); } catch (Exception ex) { MessageBox.Show(ex.StackTrace); } } Before calling this code you will need to Check out the file, otherwise you will get an error.
Go here to see the original:
How to Retain/Preserve "Modified By" while checking in a file


