Пример #1
0
    int /*perr*/ FileFindName(string[] nameParts, out File parent, out File file, out string endName)
    {
        int perr = 0;

        parent  = null;
        file    = root;
        endName = "";
        int i = 0;

        while (perr == 0 && i != nameParts.Length)
        {
            parent  = file;
            file    = null;
            endName = nameParts[i++];
            string   foldedName = endName.ToLower();
            NameLink nameLink   = (NameLink)(parent.children[foldedName]);
            if (nameLink == null)
            {
                perr = Pfm.errorNotFound;
                if (i != nameParts.Length)
                {
                    parent  = null;
                    endName = null;
                    perr    = Pfm.errorParentNotFound;
                }
            }
            else
            {
                file    = nameLink.file;
                endName = nameLink.endName;
            }
        }
        return(perr);
    }
Пример #2
0
    void FileNameAdd(File parent, long writeTime, string endName, File file)
    {
        if (file.fileId == 0)
        {
            file.fileId = ++lastFileId;
        }
        NameLink nameLink   = new NameLink(endName, file);
        string   foldedName = endName.ToLower();

        parent.children[foldedName] = nameLink;
        parent.writeTime            = writeTime;
        parent.changeTime           = writeTime;
        file.nameCount++;
        fileIds.Set(file.fileId, file);
    }