Exemple #1
0
        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();
        }
Exemple #2
0
        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);
            }
        }