code: public static Pair<Descriptor,String> fromFilename(File directory, String name, boolean skipComponent)
      {
          // tokenize the filename
          StringTokenizer st = new StringTokenizer(name, String.valueOf(separator));
          String nexttok;
  
          // all filenames must start with keyspace and column family
          String ksname = st.nextToken();
          String cfname = st.nextToken();
  
          // optional temporary marker
          nexttok = st.nextToken();
          Type type = Type.FINAL;
          if (nexttok.equals(Type.TEMP.marker))
          {
              type = Type.TEMP;
              nexttok = st.nextToken();
          }
          else if (nexttok.equals(Type.TEMPLINK.marker))
          {
              type = Type.TEMPLINK;
              nexttok = st.nextToken();
          }
  
          if (!Version.validate(nexttok))
              throw new UnsupportedOperationException("SSTable " + name + " is too old to open.  Upgrade to 2.0 first, and run upgradesstables");
          Version version = new Version(nexttok);
  
          nexttok = st.nextToken();
          int generation = Integer.parseInt(nexttok);
  
          // component suffix
          String component = null;
          if (!skipComponent)
              component = st.nextToken();
          directory = directory != null ? directory : new File(".");
          return Pair.create(new Descriptor(version, directory, ksname, cfname, generation, type), component);
      }
docs: Filename of the form "<ksname>-<cfname>-[tmp-][<version>-]<gen>-<component>"
  
  @param directory The directory of the SSTable files
  @param name The name of the SSTable file
  @param skipComponent true if the name param should not be parsed for a component tag
  
  @return A Descriptor for the SSTable, and the Component remainder.