A method and system for sharing files between a group of computer systems. The
file sharing system allows a group of computer systems to be defined. The files
shared by a group are associated with a group folder. A group folder is represented
by a folder created by the file system of each member of the group. The folder
at each member contains a file for each file that is shared by the group. The files
in the folder of a member may be actual files stored at that member, which contains
the content of the shared file, or virtual files identifying the actual file that
is stored at another member. When a member accesses a virtual file, the file sharing
system detects the access and requests that the file owner provide a copy of the
file to the accessing member on a peer-to-peer basis. Whenever a shared file is
modified, the file owner sends updated metadata for that file to the other members
of the group.