How do I check if two files are different programmatically?

25 visualizaciones (últimos 30 días)
Given two files of the same type (e.g., .m, .xlsx, .fig), I'd like to compare them to check if they are the same or not. How can I programmatically call Matlab's comparison functionality and have it return the status of the comparison?
The use case here is that I have a Development folder and a Release folder. I want to check if there has been changes to the Development files in comparison to the Release version, so I know whether or not it needs to be updated.
  1 comentario
dpb
dpb el 21 de Oct. de 2021
MATLAB doesn't have such a builtin comparison functionality for totally general files. You would have several alternatives depending upon how much in depth you want to go --
  1. Check OS timestamps -- if date/time of file in Development folder is later than that of Release, presume modifications. That's what backup routines and version control systems do. This is doable with MATLAB by use of the dir function.
  2. Check actual file content, not just file system date stamp. This would find cases in which the content actually hasn't changed, but the file was opened/touched in such a manner as to have modified the datestamp even if the content didn't actually get modified. There are OS commands to make file comparisons (FC is packaged with the CMD interpreter in Windows), in general it's probably best to just pass the task off to one of those from MATLAB.
  3. "Roll your own" -- not recommended.

Iniciar sesión para comentar.

Respuesta aceptada

Monika Jaskolka
Monika Jaskolka el 21 de Oct. de 2021
I ended up using the diff command via system:
[~, result] = system(['diff ''', file1, ''' ''', file2, '''']);
When the result is empty, the files are identical. Otherwise they are different.

Más respuestas (0)

Categorías

Más información sobre Environment and Settings en Help Center y File Exchange.

Etiquetas

Productos


Versión

R2021a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by