// Removes a file from its parent directory. func (f *File) Remove() { f.Lock() if (f.flags & Fremoved) != 0 { f.Unlock() return } f.flags |= Fremoved f.Unlock() p := f.Parent p.Lock() if f.next != nil { f.next.prev = f.prev } else { p.clast = f.prev } if f.prev != nil { f.prev.next = f.next } else { p.cfirst = f.next } f.next = nil f.prev = nil p.Unlock() }
func (f *File) Rename(name string) error { p := f.Parent p.Lock() defer p.Unlock() for c := p.cfirst; c != nil; c = c.next { if name == c.Name { return Eexist } } f.Name = name return nil }