filesystem storage: provide file modification date

git-svn-id: svn://svn.cy55.de/Zope3/src/cybertools/trunk@3967 fd906abe-77d9-0310-91a1-e0d9ade77398
This commit is contained in:
helmutm 2010-08-22 13:22:48 +00:00
parent c0d15a34ef
commit 5ef2d631df

View file

@ -22,6 +22,8 @@ Storing data in files in the file system.
$Id$
"""
from datetime import datetime
from logging import getLogger
import os
import shutil
from zope.interface import implements
@ -34,6 +36,9 @@ from cybertools.storage.interfaces import IExternalStorage
DEFAULT_DIRECTORY = 'extfiles'
logger = getLogger('cybertools.storage.filesystem')
class FileSystemStorage(object):
implements(IExternalStorage)
@ -75,8 +80,7 @@ class FileSystemStorage(object):
f.close()
return data
except IOError, e:
from logging import getLogger
getLogger('cybertools.storage.filesystem.FileSystemStorage').warn(e)
logger.warn(e)
#'File %r cannot be read.' % fn)
return ''
@ -86,10 +90,20 @@ class FileSystemStorage(object):
try:
return os.path.getsize(fn)
except OSError, e:
from logging import getLogger
getLogger('cybertools.storage.filesystem.FileSystemStorage').warn(e)
logger.warn(e)
return 0
def getMTime(self, address, params={}):
subDir = params.get('subdirectory')
fn = self.getDir(address, subDir)
try:
ts = os.path.getmtime(fn)
if ts:
return datetime.fromtimestamp(ts)
except OSError, e:
logger.warn(e)
return None
def getUniqueAddress(self, address, params={}):
subDir = params.get('subdirectory')
return self.getDir(address, subDir)