- 论坛徽章:
- 0
|
def ZipFiles(srcPath, zipFilename, arcName="/", CompressMode = 0):
"""
Description: Zip all file in srcPath
"""
tmpFile = None
zipFile = None
flag = None
try:
tmpFile = file(zipFilename,'wb')
zipFile = zipfile.ZipFile(tmpFile,"w")
flag = __addToZip(srcPath, zipFile, arcName, CompressMode )
finally:
if zipFile:
zipFile.close()
if tmpFile:
tmpFile.close()
if not flag:
return False
return True
def __addToZip(srcPath, zipFile, arcName, CompressMode = 0):
"""
Description: Zip all file in srcPath
"""
#add file into zip file
if not os.path.isdir(srcPath):
if arcName == "":
fileName = os.path.basename(srcPath)
arcName = fileName
zipFile.write(srcPath, arcName, CompressMode)
return True
#add directory into zip file
fileList = os.listdir(srcPath)
if arcName == "":
dirName = os.path.basename(srcPath)
arcName = dirName + '/'
if arcName == '/':
arcName = ''
else:
zipFile.writestr(arcName, "")
for fileName in fileList:
filePath = os.path.join(srcPath, fileName)
if os.path.isdir(filePath):
if not __addToZip(filePath, zipFile,
arcName + fileName + '/', CompressMode):
return False
else:
if len(filePath) > 255:
print "zip %s path is more than 255 characters"%filePath
return False
zipFile.write(filePath, arcName + fileName, CompressMode)
return True |
|