FractalNet
Home Software Music Other
Overview   Overview
Guitar Chord Explorer   GCE
Marble Challenge   Marble Challenge
ASCIIroids   ASCIIroids
Particle System Designer   PSD (Second Life)
Gravity Bubbles   Gravity Bubbles
FractalNet   FractalNet
EcoSim   EcoSim
Cosmic Dust   Cosmic Dust
LandMesh   LandMesh
Imagencrypter   Imagencrypter
Foxy Detector   Foxy Detector
MacDiff   MacDiff
Asteroid Belt   Asteroid Belt
Matrix Attack   Matrix Attack
Solar Swarm   Solar Swarm
Mac OS X Terminal guide   OS X Terminal
Tools   Tools
Names :-)   Names :-)
MacDiff

MacDiff

MacDiff is a file-comparison program for Mac OS X, which I wrote in about 1,400 lines of Java.  It can compare two individual files, or it can recursively compare all the files in two directories (including subdirectories).

MacDiff is not a text-comparison program – it doesn’t compare two text files line by line.  Instead, it compares the following items:
  • Sizes  –  The number of bytes in each file.
  • Modified dates  –  The date when each file was last modified.
  • Metadata  –  The Spotlight metadata of each file (see below).
  • UNIX  –  The UNIX filetype and access permissions of each file.
  • Data  –  The actual bytes of each file.
The program can ignore .DS_Store files (hidden files created by OS X to store custom attributes of a folder, such as the position of icons or the choice of a background image), and can write the comparison results to a text file for later inspection.

The stat OS X command line utility is used by MacDiff to obtain the UNIX filetype and access permissions for each file, and the mdls utility is used to obtain all the metadata that Spotlight has stored about each file (see this article for more information).  MacDiff can be told to ignore certain metadata attributes (such as LastUsedDate) if they are causing an unhelpfully large number of file differences to be reported.  Below is a list of the metadata attributes that MacDiff can compare:

General
  • AcquisitionMake
  • AcquisitionModel
  • Album
  • AttributeChangeDate
  • Audiences
  • AuthorEmailAddresses
  • Authors
  • BitsPerSample
  • Codecs
  • Comment
  • ContactKeywords
  • ContentCreationDate
  • ContentModificationDate
  • ContentType
  • ContentTypeTree
  • Contributors
  • Copyright
  • Coverage
  • Creator
  • DeliveryType
  • Description
  • DisplayName
  • DueDate
  • DurationSeconds
  • EmailAddresses
  • EncodingApplications
  • FinderComment
  • Fonts
  • Headline
  • ID
  • Identifier
  • InstantMessageAddresses
  • Instructions
  • Keywords
  • Kind
  • Languages
  • LastUsedDate
  • LayerNames
  • MediaTypes
  • NumberOfPages
  • Organizations
  • Orientation
  • PageHeight
  • PageWidth
  • Path
  • PhoneNumbers
  • PixelHeight
  • PixelWidth
  • Projects
  • Publishers
  • RecipientEmailAddresses
  • Recipients
  • RecordingDate
  • RecordingYear
  • Rights
  • SecurityMethod
  • StarRating
  • Streamable
  • Subject
  • TextContent
  • Title
  • URL
  • UsedDates
  • Version
  • WhereFroms
File system
  • FSContentChangeDate
  • FSCreationDate
  • FSCreatorCode
  • FSExists
  • FSFinderFlags
  • FSInvisible
  • FSIsExtensionHidden
  • FSIsReadable
  • FSIsWriteable
  • FSLabel
  • FSName
  • FSNodeCount
  • FSOwnerGroupID
  • FSOwnerUserID
  • FSSize
  • FSTypeCode
Images
  • ColorSpace
  • HasAlphaChannel
  • ProfileName
  • ResolutionHeightDPI
  • ResolutionWidthDPI
Audio and/or video
  • AudioBitRate
  • AudioChannelCount
  • AudioEncodingApplication
  • AudioSampleRate
  • AudioTrackNumber
  • TotalBitRate
  • VideoBitRate
Location
  • City
  • Country
  • StateOrProvince
Photos
  • Aperture
  • EXIFVersion
  • ExposureMode
  • ExposureProgram
  • ExposureTimeSeconds
  • FlashOnOff
  • FNumber
  • FocalLength
  • ISOSpeed
  • MaxAperture
  • MeteringMode
  • RedEyeOnOff
  • WhiteBalance
Music
  • AppleLoopDescriptors
  • AppleLoopsKeyFilterType
  • AppleLoopsLoopMode
  • AppleLoopsRootKey
  • Composer
  • IsGeneralMIDISequence
  • KeySignature
  • Lyricist
  • MusicalGenre
  • MusicalInstrumentCategory
  • MusicalInstrumentName
  • Tempo
  • TimeSignature

Automatic country lookup for comments powered by hostip.info
Comments

No comments yet.  Be the first to add a comment!


Add a comment

Contact me  –  Page last updated on 7th August 2008  –  Website hosted by 5quidhost (highly recommended!)
Michael Hogg