def __init__(self, fileName=''): self.doc = minidom.Document() self.rootNode = XmlUtils.GetRoot(self.doc) self.name = '' self.fileName = '' # 绝对路径 self.dirName = '' # 绝对路径 self.baseName = '' # 项目文件名 # 用于判断是否重新生成 makefile,此标志为真时,必重新生成 makefile # FIXME: 如果此标志为真,但是此时关闭工作区,下次启动时不会重建 makefile self.isModified = False self.tranActive = False self.modifyTime = 0 self.settings = None if fileName: try: self.doc = minidom.parse(fileName) except IOError: print 'Invalid fileName:', fileName raise IOError self.rootNode = XmlUtils.GetRoot(self.doc) self.name = XmlUtils.GetRoot(self.doc).getAttribute('Name')\ .encode('utf-8') self.fileName = os.path.abspath(fileName) #绝对路径 self.dirName, self.baseName = os.path.split(self.fileName) #绝对路径 self.modifyTime = Globals.GetFileModificationTime(fileName) self.settings = ProjectSettings( XmlUtils.FindFirstByTagName(self.rootNode, 'Settings'))
def Load(self, fileName=''): if not fileName and not self.fileName: return False ret = False obj = None try: if not fileName: fileName = self.fileName f = open(fileName, 'rb') obj = pickle.load(f) f.close() except IOError: #print 'IOError:', fileName return False if obj: self.fileName = obj.fileName self.envVarSets = obj.envVarSets #self.activeSetName = obj.activeSetName # 这个值只有临时保存,不需要 self.mtime = Globals.GetFileModificationTime(fileName) del obj ret = True if ret: self.ExpandSelf() return ret
def Save(self, fileName=''): if not fileName and not self.fileName: return False ret = False try: if not fileName: fileName = self.fileName dirName = os.path.dirname(fileName) if not os.path.exists(dirName): os.makedirs(dirName) f = open(fileName, 'wb') pickle.dump(self, f) f.close() self.mtime = Globals.GetFileModificationTime(fileName) ret = True except IOError: print 'IOError:', fileName return False return ret
def GetProjFileLastModifiedTime(self): return Globals.GetFileModificationTime(self.fileName)