How can I covert a Word 2003 Document to Word 2007 without losing history?

The convert button is disabled when an item is checked out in SharePoint, and if I save and then re-upload it becomes a separate document because of the name change (.doc -> .docx)?


I don't believe that you can as you mentioned, the file name change constitutes a new file and a new version history. You could always check out the 2003 version and upon checking it back in, state the file has been converted to a new format and the history ends.

MyDoc.doc and MyDoc.docx are different files even though they may be the same content so SharePoint interprets them that way.

  • I can rename a file through SharePoint and I believe that keeps the history, but it doesn't give me the option to change the extension... – C. Ross Sep 23 '11 at 16:35
  • it won't let you, and as soon as you do, it's going to be a new file/new version history. – Eric Alexander Sep 23 '11 at 17:38
  • 1
    +1 but not exactly true. You can change file extension by using object model and SPFile.MoveTo Method. If you change doc to docx you can upload your new docx file and keep versions. BUT !!! if you try to open previous version document from Version History it will fail because Word will think it is docx and report a error File format does not match file extension (stupid Word). Too bad because it would solve this issue ... – Vedran Rasol Sep 24 '11 at 22:21

You are not going to be able to do keep all the histories linked to the new document.

What we have done in the past is choose a major version to convert, then archive the old docs and versions. I personally thru them in a ZIP and kept that in the same library as the new doc, and labeled it accordingly.

Now, getting all the versions off, that depends on your level of access. If you have a lot of versions you want to keep, a programmatic approach will be a time saver. If it's just a few, you may be able to get away with downloading the current version, restoring prior version than downloading that.

  • +1 after I read your solution I came up with mine - almost similar but yet a little different :) – Vedran Rasol Sep 24 '11 at 22:25

Answers provided by @PirateEric and @JesusShelby are valid: You cannot convert doc to docx and have a single file with all version history intact.

IMO since you will always end up with two files best solution is to link them. You can add Lookup Column to library pointing at that same library. Then you can convert doc file, save it as docx and pick 'old' file from lookup column. By doing so when you click on lookup column you will be redirected to 'old' file where you can see 'old' version history.

In addition you can have another Yes/No column to mark 'old' files and use it to hide them in view.

Depending on quantity of documents you are planning to convert you can decide if you are going to do it manually or write some code to make bulk conversion.

This isn't solution you are looking for but it is closest workaround I can think of.


I did this once where the requirements abosolutely required allowing the file extension to be changed while keeping the version history intact. It required a lot of customization.

The first piece was the upload, which required a custom page. This used SPFile.MoveTo(), as Vedran mentioned. The drawback is there is no OOTB history of what the extension used to be once it is changed.

So the second piece was an event handler to store the file extension of the current version in the property bag of the list item (eg, ".doc") each time a new version was checked in.

The third part was a custom version history page that swapped the download links (among other things), with a link to a custom aspx page that could deal with fixing the filename for previous versions.

The download page would grab the document version, get the correct file extension out of that version's property bag, and stream the correctly named file to the browser.

As you can see it was a lot of work. So it is probably not worth it unless absolutely required.


This is easy with later versions of SharePoint (SP Server 2007 and up I think).

Just browse to the location containing the file. Under the Actions drop-down menu choose Open with Windows Explorer. The desktop explorer window should open. From here you can easily rename the file (just as you would any other file on your desktop).

Please ensure that you have the "Show file extensions" option enabled. The file will be renamed and the history will be intact.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.