public ISystemArtifact getArtifact(IVirtualPath path) {
File file = new File(directory, path.toString("/"));
if (!file.exists())
throw new VirtualArtifactNotFoundException(this, path.toString("/") + " does not exist in " + this);
return file.isDirectory() ? new SystemDirectory(file) : new SystemFile(file);
}