txt: ## spec.md
  class IO::Spec
  
  Platform specific operations on file and directory paths
  
  ```raku
  class IO::Spec { }
  ```
  
  Objects of this class are not used directly but as a sub-class specific to the platform Raku is running on via the `$*SPEC` variable which will contain an object of the appropriate type.
  
  The sub-classes are documented separately, with the platform-specific differences documented in [`IO::Spec::Cygwin`](/type/IO/Spec/Cygwin), [`IO::Spec::QNX`](/type/IO/Spec/QNX), [`IO::Spec::Unix`](/type/IO/Spec/Unix) and [`IO::Spec::Win32`](/type/IO/Spec/Win32).
  
  # [About sub-classes IO::Spec::\*](#class_IO::Spec "go to top of document")[§](#About_sub-classes_IO::Spec::* "direct link")
  
  The `IO::Spec::*` classes provide low-level path operations. Unless you're creating your own high-level path manipulation routines, you don't need to use `IO::Spec::*`. Use [`IO::Path`](/type/IO/Path) instead.
  
  Beware that no special validation is done by these classes (e.g. check whether path contains a null character). It is the job of higher-level classes, like [`IO::Path`](/type/IO/Path), to do that.
  
  # [Methods](#class_IO::Spec "go to top of document")[§](#Methods "direct link")
  