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); }
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); }