I'd like to know if a
.blend file contains information about the version of Blender it was saved from. I have couple of old files and I'd like to open them in version of blender they were originally created in.
Open the .blend file in any text editor, the first few characters will be something like this (followed by a lot of unreadable binary data which you can ignore):
That's the version number right there, this file would have been saved with Blender 2.67.
If it's not there, that probably means you are looking at a compressed .blend file. In that case you can rename the file to have the extension .blend.gz and decompress it. Note that resaving from Blender doesn't work because the version number would change.
Yes, this is included in the files header.
You can find this out using the
file command (common Unix/Linux systems).
$ file --uncompress test.blend test.blend: Blender3D, saved as 64-bits little endian with version 2.67
--uncompress option will look inside compressed blend files.
Yes you can, You can use this program called bl2magic (Windows only). The page looks sketchy but it's perfectly valid. See a BlenderNation feature on it. There is also a python script there if you're not on Windows.
Just download the
.zip, extract the program and run it, drop your
.blend file on it and it will print the version it was saved from and if it was compressed or not.
Blender files are in binary and I'm not sure how to view them, but here's a link to an article(from Blender version 2.48) explaining what a
.blend file is made up of: http://www.blender.org/development/architecture/blender-file-format/
According to the page, there is a part of the file called the File-Header and in the header the version number is stated(i.e. 253 for 2.53).
I would not really recommend going through the trouble of this though. Blender is backwards compatable, so you won't be missing any features (except for radiosity which was a way to back indirect light. Blender does this dynamically now).
To get a .blend file version:
import bpy blend_path = r"D:\asset\data\hqKAZbQSqjx\desert_bush_2.blend" with bpy.data.libraries.load(blend_path, link = True) as (data_from, data_to): pass for library in bpy.data.libraries: if library.filepath == blend_path: print(library.version) print(library.filepath) bpy.data.libraries.remove(library) #(2, 79, 5) #D:\asset\data\hqKAZbQSqjx\desert_bush_2.blend