Touch() should ensure parent directory exists