# -*- coding: utf-8 -*-
import
os;
folderA
=
"F:\\Projects\\FreeImageV3_14_1\\"
.lower();
folderB
=
u
"E:\\Software\\图像解码库\\FreeImage3141\\FreeImage\\"
.lower();
filePathsA
=
{};
filePathsB
=
{};
for
root,dirs,files
in
os.walk(folderA):
for
fileName
in
files:
filePathsA[(root
+
"\\"
+
fileName).lower()]
=
1
;
for
root,dirs,files
in
os.walk(folderB):
for
fileName
in
files:
filePathsB[(root
+
"\\"
+
fileName).lower()]
=
1
;
# 在filePathsA中,找到所有和filePathsB中不一致的文件的路径
modifiedFilePath
=
[];
addedFilePath
=
[];
for
filePathA
in
filePathsA:
folderALen
=
len
(folderA);
filePathB
=
folderB
+
filePathA[folderALen:];
idx
=
filePathA.rfind(
"."
);
if
idx
=
=
-
1
:
continue
;
ext
=
filePathA[idx
+
1
:];
ext
=
ext.lower();
if
ext !
=
"c"
and
ext !
=
"h"
and
ext !
=
"cpp"
and
ext !
=
"cxx"
:
continue
;
if
filePathB
not
in
filePathsB:
addedFilePath.append(filePathA);
continue
;
text_file
=
open
(filePathA,
"r"
);
textA
=
text_file.read();
text_file.close();
text_file
=
open
(filePathB,
"r"
);
textB
=
text_file.read();
text_file.close();
if
textA !
=
textB:
modifiedFilePath.append(filePathA);
output
=
open
(
'res.txt'
,
'w'
);
output.write(
"added files:\n"
);
for
filePath
in
addedFilePath:
output.write(filePath
+
"\n"
);
output.write(
"modified files:\n"
);
for
filePath
in
modifiedFilePath:
output.write(filePath
+
"\n"
);
output.close();