code: protected String idFor( File file ) {
          String path = file.getAbsolutePath();
          if (!path.startsWith(directoryAbsolutePath)) {
              if (directory.getAbsolutePath().equals(path)) {
                  // This is the root
                  return DELIMITER;
              }
              String msg = JcrI18n.fileConnectorNodeIdentifierIsNotWithinScopeOfConnector.text(getSourceName(), directoryPath, path);
              throw new DocumentStoreException(path, msg);
          }
          String id = path.substring(directoryAbsolutePathLength);
          id = id.replaceAll(Pattern.quote(FILE_SEPARATOR), DELIMITER);
          assert id.startsWith(DELIMITER);
          return id;
      }
docs: Utility method for determining the node identifier for the supplied file. Subclasses may override this method to change the
  format of the identifiers, but in that case should also override the {@link #fileFor(String)},
  {@link #isContentNode(String)}, and {@link #isRoot(String)} methods.
  
  @param file the file; may not be null
  @return the node identifier; never null
  @see #isRoot(String)
  @see #isContentNode(String)
  @see #fileFor(String)