def
diff_file(
self
):
'''删除多余文件夹并修改index.html文件'''
ret,diff_results
=
self
.process_diff()
diffpaths_list
=
diff_results.keys()
package_list
=
ret.keys()
dirs_name
=
os.listdir(
self
.coco_path)
del_dirs
=
list
(
set
(dirs_name).difference(
set
(package_list)))
for
i
in
del_dirs:
if
os.path.isdir(os.path.join(
self
.coco_path, i)):
# 若差集列表中的文件是文件夹则循环删除
re_file
=
os.path.join(
self
.coco_path, i)
shutil.rmtree(re_file)
//对多余的文件夹进行删除操作
htmlpath
=
os.path.join(
self
.coco_path,
'index.html'
)
new_package_list
=
[]
for
pack
in
package_list:
java_path
=
os.path.join(
self
.coco_path,pack)
java_list
=
[]
fina_java_list
=
[]
for
java_name
in
ret[pack].keys():
java_file_name
=
"src/main/java/"
+
pack.replace(
"."
,
"/"
)
+
"/"
+
java_name
+
".java"
if
java_file_name
in
diffpaths_list:
javafile_path
=
os.path.join(java_path,java_name
+
'.html'
)
//有差异的文件就生成相关的java的html报告文件
diff_void_list
=
diff_results[java_file_name][
'diff_voids'
].keys()
if
len
(diff_void_list):
self
.Del_Dr(javafile_path,diff_void_list,ret,
'file'
,java_file_name,diff_results)
java_list.append(java_name
+
'.html'
)
java_list.append(java_name
+
'.java.html'
)
fina_java_list.append(java_name)
new_package_list.append(pack)
//并把新生成的文件记录到文件列表list中
fina_java_list
=
list
(
set
(fina_java_list))
self
.Del_Dr(os.path.join(java_path,
'index.html'
),fina_java_list, ret[pack],
'package'
)
if
len
(java_list):
java_list.append(
"index.html"
)
java_list.append(
"index.source.html"
)
java_dirs
=
os.listdir(java_path)
del_javas
=
list
(
set
(java_dirs).difference(
set
(java_list)))
for
d_java
in
del_javas:
os.remove(os.path.join(java_path,d_java))
new_package_list
=
list
(
set
(new_package_list))
self
.Del_Dr(htmlpath,new_package_list, ret,
'root'
)