Hi,
I have an urgent requirement to be done in JAVA where in I need to
compare between two directories and to see if there are exact same
name files available in both the directories. So for eg. DIR1 and DIR2
both have 1.xml, 2.xml then its fine or report the missing ones.
Secondly whichever files are avilable in both the directories compare
them so compare 1.xml in DIR1 to 1.xml in DIR2 but only on certain
fields.
So in summary :
DIR1 -> 1.xml{contents= <a>20</a><b>10</b> }, 2.xml, 3.xml
DIR2 -> 1.xml{contents= <a>25</a> }, 2.xml, 4.xml
Then the report should tell me that
a] 3.xml is missing in DIR2
b] 4.xml is missing in DIR1
c] <a> field in the 1.xml differs
d] But assuming <b> is a fields to be ignored do not display any
error.
Can these be done in JAVA and how ?
Please help.
regards
Nick
Arved Sandstrom - 18 Apr 2008 14:09 GMT
> Hi,
>
[quoted text clipped - 26 lines]
> regards
> Nick
For the first task you essentially need (recursive) directory listings. You
could start with something like this
(http://exampledepot.com/egs/java.io/GetFiles.html) and take it from there
(there are useful links). If you convert your file listings to sets you can
do a difference operation
(http://java.sun.com/docs/books/tutorial/collections/interfaces/set.html) to
cleanly discover what files are different, and intersections to get the
common file listings.
Once you have common file listings, and given that you are comparing XML
content, you'll be able to find existing programs/utilities that do XML
diffs.
AHS