public void updateFile(AmjFile file) { if (!contents.Contains(file)) { return; } List <AmjAttribute> values; if (file.nameChanged) { if (filesAttributes.ContainsKey(file.oldPath)) { values = filesAttributes[file.oldPath]; filesAttributes.Remove(file.oldPath); filesAttributes.Add(file.path, values); } } if (file.attributesChanged) { values = new List <AmjAttribute>(); foreach (String attr in attributesList) { String attrVal = file.getAttribute(attr); if (attrVal.Length > 0) { values.Add(new AmjAttribute(attr, attrVal)); } } if (filesAttributes.ContainsKey(file.oldPath)) { filesAttributes[file.path] = values; } else { filesAttributes.Add(file.path, values); } } updateFilesAttributesFile(); loadContents(); }
private void loadContentsFromFolder(String folder) { foreach (String fp in Directory.GetFiles(folder)) { String fPath = Path.GetFullPath(fp).ToLower(); if (string.Equals(Path.GetFileName(fPath), Path.GetFileName(attrListFile), StringComparison.OrdinalIgnoreCase) || string.Equals(Path.GetFileName(fPath), Path.GetFileName(filesAttrsFile), StringComparison.OrdinalIgnoreCase)) { continue; } AmjFile f = new AmjFile(fPath, this); if (filesAttributes.ContainsKey(fPath)) { foreach (AmjAttribute attr in filesAttributes[fPath]) { int attrIndex = getAttrIndex(attr.name); if (attrIndex == -1) { continue; } f.addAttribute(attr.name, attr.value); if (!uniqueAttrValues.ContainsKey(attrIndex)) { uniqueAttrValues.Add(attrIndex, new List <string>()); } if (!uniqueAttrValues[attrIndex].Contains(attr.value)) { uniqueAttrValues[attrIndex].Add(attr.value); } } } contents.Add(f); } foreach (String dir in Directory.GetDirectories(folder)) { loadContentsFromFolder(dir); } }