The Path

-->

Members of many of the types in the System.IO namespace include a path parameter that lets you specify an absolute or relative path to a file system resource. This path is then passed to Windows file system APIs. This topic discusses the formats for file paths that you can use on Windows systems.

  • The Path Listen to the daily scripture readings and thoughtful commentary with quotes from the Fathers and the lives of the Saints. It's strength for the journey, heard three times a day or whenever you wish from your computer or portable device. Start date: February 2007.
  • The Path is meditation for the modern mind. We've hosted weekly meditations since 2014 and taught thousands of people to meditate in New York, Los Angeles and San Francisco, at SXSW, Sundance, Flow Japan and events around the world.

A map of the underground network of stores in Toronto, Ontario. Buildings are in blue, and TTC stations are in red. See the official PATH website: http://www.toronto.

Traditional DOS paths

A standard DOS path can consist of three components:

  • A volume or drive letter followed by the volume separator (:).
  • A directory name. The directory separator character separates subdirectories within the nested directory hierarchy.
  • An optional filename. The directory separator character separates the file path and the filename.

If all three components are present, the path is absolute. If no volume or drive letter is specified and the directory name begins with the directory separator character, the path is relative from the root of the current drive. Otherwise, the path is relative to the current directory. The following table shows some possible directory and file paths.

PathDescription
C:DocumentsNewslettersSummer2018.pdfAn absolute file path from the root of drive C:.
Program FilesCustom UtilitiesStringFinder.exeAn absolute path from the root of the current drive.
2018January.xlsxA relative path to a file in a subdirectory of the current directory.
.PublicationsTravelBrochure.pdfA relative path to file in a directory that is a peer of the current directory.
C:Projectsapilibraryapilibrary.slnAn absolute path to a file from the root of drive C:.
C:Projectsapilibraryapilibrary.slnA relative path from the current directory of the C: drive.

Important

Note the difference between the last two paths. Both specify the optional volume specifier (C: in both cases), but the first begins with the root of the specified volume, whereas the second does not. As result, the first is an absolute path from the root directory of drive C:, whereas the second is a relative path from the current directory of drive C:. Use of the second form when the first is intended is a common source of bugs that involve Windows file paths.

You can determine whether a file path is fully qualified (that is, it the path is independent of the current directory and does not change when the current directory changes) by calling the Path.IsPathFullyQualified method. Note that such a path can include relative directory segments (. and .) and still be fully qualified if the resolved path always points to the same location.

The following example illustrates the difference between absolute and relative paths. It assumes that the directory D:FY2018 exists, and that you haven't set any current directory for D: from the command prompt before running the example.

If you would like to see code comments translated to languages other than English, let us know in this GitHub discussion issue.

UNC paths

Universal naming convention (UNC) paths, which are used to access network resources, have the following format:

  • A server or host name, which is prefaced by . The server name can be a NetBIOS machine name or an IP/FQDN address (IPv4 as well as v6 are supported).
  • A share name, which is separated from the host name by . Together, the server and share name make up the volume.
  • A directory name. The directory separator character separates subdirectories within the nested directory hierarchy.
  • An optional filename. The directory separator character separates the file path and the filename.

The following are some examples of UNC paths:

PathDescription
system07C$The root directory of the C: drive on system07.
Server2ShareTestFoo.txtThe Foo.txt file in the Test directory of the Server2Share volume.

UNC paths must always be fully qualified. They can include relative directory segments (. and .), but these must be part of a fully qualified path. You can use relative paths only by mapping a UNC path to a drive letter.

DOS device paths

The Windows operating system has a unified object model that points to all resources, including files. These object paths are accessible from the console window and are exposed to the Win32 layer through a special folder of symbolic links that legacy DOS and UNC paths are mapped to. This special folder is accessed via the DOS device path syntax, which is one of:

.C:TestFoo.txt?C:TestFoo.txt

In addition to identifying a drive by its drive letter, you can identify a volume by using its volume GUID. This takes the form:

.Volume{b75e2c83-0000-0000-0000-602f00000000}TestFoo.txt?Volume{b75e2c83-0000-0000-0000-602f00000000}TestFoo.txt

Note

DOS device path syntax is supported on .NET implementations running on Windows starting with .NET Core 1.1 and .NET Framework 4.6.2.

The DOS device path consists of the following components:

  • The device path specifier (. or ? Download picture for desktop background. ), which identifies the path as a DOS device path.

    Note

    The ? is supported in all versions of .NET Core and .NET 5+ and in .NET Framework starting with version 4.6.2.

  • A symbolic link to the 'real' device object (C: in the case of a drive name, or Volume{b75e2c83-0000-0000-0000-602f00000000} in the case of a volume GUID).

    The first segment of the DOS device path after the device path specifier identifies the volume or drive. (For example, ?C: and .BootPartition.)

    There is a specific link for UNCs that is called, not surprisingly, UNC. For example:

    .UNCServerShareTestFoo.txt?UNCServerShareTestFoo.txt

    For device UNCs, the server/share portion forms the volume. For example, in ?server1e:utilitiesfilecomparer, the server/share portion is server1utilities. This is significant when calling a method such as Path.GetFullPath(String, String) with relative directory segments; it is never possible to navigate past the volume.

DOS device paths are fully qualified by definition. Relative directory segments (. and .) are not allowed. Current directories never enter into their usage.

Example: Ways to refer to the same file

The following example illustrates some of the ways in which you can refer to a file when using the APIs in the System.IO namespace. The example instantiates a FileInfo object and uses its Name and Length properties to display the filename and the length of the file.

Path normalization

Almost all paths passed to Windows APIs are normalized. During normalization, Windows performs the following steps:

  • Identifies the path.
  • Applies the current directory to partially qualified (relative) paths.
  • Canonicalizes component and directory separators.
  • Evaluates relative directory components (. for the current directory and . for the parent directory).
  • Trims certain characters.

This normalization happens implicitly, but you can do it explicitly by calling the Path.GetFullPath method, which wraps a call to the GetFullPathName() function. You can also call the Windows GetFullPathName() function directly using P/Invoke.

Identify the path

The first step in path normalization is identifying the type of path. Paths fall into one of a few categories:

  • They are device paths; that is, they begin with two separators and a question mark or period (? or .).
  • They are UNC paths; that is, they begin with two separators without a question mark or period.
  • They are fully qualified DOS paths; that is, they begin with a drive letter, a volume separator, and a component separator (C:).
  • They designate a legacy device (CON, LPT1).
  • They are relative to the root of the current drive; that is, they begin with a single component separator ().
  • They are relative to the current directory of a specified drive; that is, they begin with a drive letter, a volume separator, and no component separator (C:).
  • They are relative to the current directory; that is, they begin with anything else (temptestfile.txt).

The type of the path determines whether or not a current directory is applied in some way. It also determines what the 'root' of the path is.

Handle legacy devices

If the path is a legacy DOS device such as CON, COM1, or LPT1, it is converted into a device path by prepending . and returned.

Out there somewhere download free. A path that begins with a legacy device name is always interpreted as a legacy device by the Path.GetFullPath(String) method. For example, the DOS device path for CON.TXT is .CON, and the DOS device path for COM1.TXTfile1.txt is .COM1.

The Path Episodes

Apply the current directory

If a path isn't fully qualified, Windows applies the current directory to it. UNCs and device paths do not have the current directory applied. Neither does a full drive with separator C:.

If the path starts with a single component separator, the drive from the current directory is applied. For example, if the file path is utilities and the current directory is C:temp, normalization produces C:utilities.

If the path starts with a drive letter, volume separator, and no component separator, the last current directory set from the command shell for the specified drive is applied. If the last current directory was not set, the drive alone is applied. For example, if the file path is D:sources, the current directory is C:Documents, and the last current directory on drive D: was D:sources, the result is D:sourcessources. These 'drive relative' paths are a common source of program and script logic errors. Assuming that a path beginning with a letter and a colon isn't relative is obviously not correct.

If the path starts with something other than a separator, the current drive and current directory are applied. For example, if the path is filecompare and the current directory is C:utilities, the result is C:utilitiesfilecompare.

Important

Relative paths are dangerous in multithreaded applications (that is, most applications) because the current directory is a per-process setting. Any thread can change the current directory at any time. Starting with .NET Core 2.1, you can call the Path.GetFullPath(String, String) method to get an absolute path from a relative path and the base path (the current directory) that you want to resolve it against. Sniper ghost warrior contracts 2 wiki.

Canonicalize separators

All forward slashes (/) are converted into the standard Windows separator, the back slash (). If they are present, a series of slashes that follow the first two slashes are collapsed into a single slash.

Evaluate relative components

As the path is processed, any components or segments that are composed of a single or a double period (. or .) are evaluated:

  • For a single period, the current segment is removed, since it refers to the current directory.

  • For a double period, the current segment and the parent segment are removed, since the double period refers to the parent directory.

    Parent directories are only removed if they aren't past the root of the path. The root of the path depends on the type of path. It is the drive (C:) for DOS paths, the server/share for UNCs (ServerShare), and the device path prefix for device paths (? or .).

Trim characters

Along with the runs of separators and relative segments removed earlier, some additional characters are removed during normalization:

  • If a segment ends in a single period, that period is removed. (A segment of a single or double period is normalized in the previous step. A segment of three or more periods is not normalized and is actually a valid file/directory name.)

  • If the path doesn't end in a separator, all trailing periods and spaces (U+0020) are removed. If the last segment is simply a single or double period, it falls under the relative components rule above.

    This rule means that you can create a directory name with a trailing space by adding a trailing separator after the space.

    Important

    You should never create a directory or filename with a trailing space. Trailing spaces can make it difficult or impossible to access a directory, and applications commonly fail when attempting to handle directories or files whose names include trailing spaces.

Skip normalization

Normally, any path passed to a Windows API is (effectively) passed to the GetFullPathName function and normalized. There is one important exception: a device path that begins with a question mark instead of a period. Unless the path starts exactly with ? (note the use of the canonical backslash), it is normalized.

Why would you want to skip normalization? There are three major reasons:

  1. To get access to paths that are normally unavailable but are legal. A file or directory called hidden., for example, is impossible to access in any other way.

  2. To improve performance by skipping normalization if you've already normalized.

  3. On .NET Framework only, to skip the MAX_PATH check for path length to allow for paths that are greater than 259 characters. Most APIs allow this, with some exceptions.

Note

The pathless ps5

.NET Core and .NET 5+ handles long paths implicitly and does not perform a MAX_PATH check. The MAX_PATH check applies only to .NET Framework.

Skipping normalization and max path checks is the only difference between the two device path syntaxes; they are otherwise identical. Be careful with skipping normalization, since you can easily create paths that are difficult for 'normal' applications to deal with.

Paths that start with ? are still normalized if you explicitly pass them to the GetFullPathName function.

You can pass paths of more than MAX_PATH characters to GetFullPathName without ?. It supports arbitrary length paths up to the maximum string size that Windows can handle.

Case and the Windows file system

A peculiarity of the Windows file system that non-Windows users and developers find confusing is that path and directory names are case-insensitive. That is, directory and file names reflect the casing of the strings used when they are created. For example, the method call

creates a directory named TeStDiReCtOrY. If you rename a directory or file to change its case, the directory or file name reflects the case of the string used when you rename it. For example, the following code renames a file named test.txt to Test.txt:

However, directory and file name comparisons are case-insensitive. If you search for a file named 'test.txt', .NET file system APIs ignore case in the comparison. 'Test.txt', 'TEST.TXT', 'test.TXT', and any other combination of uppercase and lowercase letters will match 'test.txt'.

The Path
Developer(s)Tale of Tales
Publisher(s)Tale of Tales
TransGaming (Mac OS X)[1]
TopWare
1C Company[2]
Zoo Corporation[3]
Artist(s)Auriea Harvey
Michaël Samyn
Laura Raines Smith
Composer(s)Jarboe
Kris Force (Amber Asylum)[4]
Platform(s)Microsoft Windows
Mac OS X[1]
ReleaseMarch 18, 2009
May 7, 2009 (Mac OS X)[1]
Autumn 2009 (Polish)
December 11, 2009 (Russian)[5]
July 7, 2010 (Japanese)[6]
Genre(s)Psychological horror, art
Mode(s)Single-player

The Path is a psychological horrorart game[7] developed by Tale of Tales originally released for the Microsoft Windowsoperating system on March 18, 2009 in English and Dutch, and later ported to Mac OS X by TransGaming Technologies.

It is inspired by several versions of the fairy taleLittle Red Riding Hood, and by folklore tropes and conventions in general, but set in contemporary times. The player can choose to control one of six different sisters, who are sent one-by-one on errands by their mother to see their sick grandmother. The player can choose whether to stay on the path or to wander, where wolves are lying in wait.[8]

Gameplay[edit]

A screenshot of the character Rose on the titular path, surrounded by the forest; the Girl in White can be seen in the distance

According to the developer, the game is not meant to be played in the traditional sense, in that there is no winning strategy. In fact, much of the gameplay requires the player to choose the losing path for the sisters to run into encounters which they (and the player) are meant to experience. Even the story narratives are not typical for a game, as explained by the developer, 'We are not story-tellers in the traditional sense of the word. In the sense that we know a story and we want to share it with you. Our work is more about exploring the narrative potential of a situation. We create only the situation. And the actual story emerges from playing, partially in the game, partially in the player’s mind.'[9]

Plot[edit]

The game begins in an apartment. The player is shown six sisters to choose from and is given no information about them other than a name. When the player selects a girl, the journey begins.

The player is given control of the girl, and is instructed: 'Go to Grandmother's house and stay on the path.'

As the player explores, they find various items scattered around. For a girl to pick up or examine an object, the player needs to either click on the interaction button or move her close enough for a superimposed image of the object to appear on the screen, then let go of the controls. The character will interact and an image will appear on the screen, indicating what has been unlocked; every item a girl encounters in the forest shows in some shape or form in Grandmother's house, and some objects open up whole new rooms. Small text will also appear, a thought from the current character. Some items can only be picked up once and do not appear in subsequent runs. However, each character will say something different about an object, so the player has the option to access a 'basket' to see what they have collected.

The Wolf is the antagonist in the game and takes on a different form for each girl. The forms represent tribulations that are associated with the stages of childhood and adolescence. It is not required to find the Wolf. In this game, there are no requirements but the ending at Grandmother's house does change dramatically after the wolf encounter. The girl encounters the Wolf, there is a brief cut scene, and the screen goes black. Afterward, the girl is lying on the path in front of Grandmother's house.

When the player enters Grandmother's house, the style of gameplay changes. It is now in first person, and the character moves forward along a pre-determined path. If the player got there without interacting with the Wolf, they arrive safely, cozy up next to Grandmother and are sent back to the apartment. The girl the player guided will still be there, and can be played again. If the player did go to the Wolf, then everything in the house is darker, and if the player remains still for too long, darkness clouds the screen, and something growls. Depending on the girl, doors are scratched, or furniture tipped over and broken, or strange black threads are draped across everything. Instead of ending with Grandmother, the music crescendos as the player enters a final surreal room before falling down, and things black out again. Images flash on the screen, featuring the girl being attacked by her Wolf, before the player is relocated back in the apartment. The girl played is not there, and will remain absent.

When all of the girls have encountered their wolves, a girl in a white dress, who could be previously encountered by the sisters, becomes playable and visits Grandmother's house. The girl will then travel through the house, now a combination of all of the end rooms of the previous girls ending with the no-wolf room. Upon reaching the grandmother, the girl appears in the apartment covered in blood, but alive. The sisters all return through the door and the game starts over.

Development[edit]

The Path was announced on the Tale of Tales Game Design forum on March 16, 2006 under the working title 144,[10] on the pattern of their first-started, on-hiatus Tale of Tales 8 (chosen for the universal, language-independent nature of Arabic numerals).[11] This number originally referred to the six 24-hour periods of the six days in which the game was set,[12] but in the released version refers to the 144 coin flowers.

Release[edit]

The Path was released on March 19, 2009.[13] It became available for Mac on May 7, 2009.[14]

Reception[edit]

The Path

Reception
Aggregate score
AggregatorScore
Metacritic79/100[15]
Review scores
PublicationScore
GameSpot8/10[16]
IGN7.7/10[17]
VideoGamer.com10/10[18]

Iain McCafferty of VideoGamer.com called The Path 'a hugely significant work in terms of what a video game can be beyond the realms of throwaway entertainment' and 'potentially a seminal moment in video games.' He claimed that 'It will be years before a game made by the big budget software houses like Ubisoft or EA is brave enough to attempt anything remotely similar, but The Path shows promising signs that gaming is starting to grow up.'[19]

Heather Chaplin of Filmmaker Magazine pointed out how uniquely feminine The Path is: 'For me, The Path is about what a remarkably fine line it is that separates childhood from adulthood, innocence from cynicism, and how utterly not black-and-white most things in life are.'[20]

Tim Martin of The Daily Telegraph cited The Path as a recent example of a 'vigorous experimentation with techniques of narrative.' He likened it to 'an Angela Carter novel, as siphoned through The Sims.'[21]

Justin McElroy of Engadget commented on gameplay mechanics: 'You get one instruction in the game and you have to disregard it. That's the kind of experience we're talking about here. Once you leave the path you'll find innumerable creepy yet beautifully rendered experiences to take part in, but you're never really given any guidance as what the point or object of all of it is. Basically, it's gameplay in the abstract.' [22] Mike Gust of Tap Repeatedly called The Path 'a sort of anti-game', 'a game turned inside out in service to something deeply personal, human and disturbing'.[23]

John Walker of RockPaperShotGun remarked 'I kind of don’t like the game' but noted that this 'is not a criticism. If anything, it’s the highest compliment I could pay it. While there’s spooky woods, abandoned playgrounds, creepy dolls, and many other familiar themes of horror, these offer no scares. For me, the horror comes from what appears to be the most abhorrently pessimistic presentation of adolescence.'[24]

Steven Poole of Edge opined that the game is 'a supremely boring collection of FMVs with pretensions to interactivity that very quickly wears out its joke about control and becomes a tedious slab of nihilistic whimsy,' yet noting that the game features a 'lugubrious, Lynchian surrealism' and that 'in its ornery and precious way, The Path is a triumph of atmosphere, coming much closer than the cruder shocks of games such as Silent Hill or BioShock to a dramatization of what Ernst Jentsch and Freud analyzed as the 'uncanny' in literature.'[25]

Awards[edit]

The Pathless Review

An in-progress, alpha-stage version of The Path was nominated for Excellence in Visual Arts after being exhibited at the Independent Games Festival in 2008.[26] The game also has been honored with two awards at Bilbao, Spain's hóPLAY International Video Game Festival. The game won Best Sound and Best Design.[27]

The Pathless Ps4

References[edit]

The Path Bike

  1. ^ abcHarvey, Auriea (May 7, 2009). 'The Path for Mac is NOW available!'. The Path development blog. Tale of Tales. Retrieved September 24, 2011.
  2. ^Samyn, Michaël (2009-03-12). 'The Path to Russia'. Tale of Tales. Retrieved 2009-03-26.
  3. ^Samyn, Michaël (2009-06-24). 'Interview in Japanese'. Tale of Tales. Retrieved 2009-06-24.
  4. ^'The Path user manual'. pp. 4, 10, 15. Retrieved 2009-03-26.
  5. ^'Official Russian Web page'.
  6. ^http://gamezone.zoo.co.jp/index.php?main_page=product_info&products_id=727
  7. ^Leigh Alexander. 'The Path For Art Games'. Kotaku.
  8. ^'The Path – a short horror game by Tale of Tales'. Tale of Tales. Retrieved 26 March 2009.
  9. ^Newheiser, Mark (7 April 2009). 'Michaël Samyn & Auriea Harvey interview'. Adventure Classic Gaming. Retrieved 2009-04-10.
  10. ^Samyn, Michaël (16 March 2006). '144 introduction'. Tale of Tales Game Design Forum. Retrieved 26 March 2009.
  11. ^Tale of Tales * 8
  12. ^Tale of Tales Game Design Forum ~ View topic - 144?
  13. ^Harvey, Auriea. 'The Path is available NOW!'. tale-of-tales.com. Retrieved 20 February 2016.
  14. ^Harvey, Auriea. 'The Path for Mac is NOW available!'. tale-of-tales.com. Retrieved 20 February 2016.
  15. ^http://www.metacritic.com/game/pc/the-path
  16. ^VanOrd, Kevin (13 August 2009). 'The Path Review'. GameSpot. Retrieved 28 June 2010.
  17. ^Onyett, Charles (24 March 2009). 'The Path Review'. IGN. Retrieved 25 March 2009.
  18. ^McCafferty, Iain (23 March 2009). 'The Path Review for PC'. VideoGamer.com. Pro-G Media. Archived from the original on 31 March 2012. Retrieved 24 March 2009.
  19. ^Iain McCafferty, 'The Path ReviewArchived 2012-03-31 at WebCite,' VideoGamer, 23 March 2009.
  20. ^Heather Chaplin, 'Heather Chaplin gets fully immersed into The Path.Archived 2012-03-06 at the Wayback Machine,' Filmmaker Magazine, Summer 2010.
  21. ^Tim Martin (8 May 2009). 'Endpaper: Fiction Reaches a New Level'. The Daily Telegraph. Retrieved 22 July 2017.
  22. ^Justin McElroy (19 March 2009). 'This is not a review for The Path'. Engadget. Retrieved 22 July 2017.
  23. ^Mike Gust (19 May 2009). 'Review: The Path'. Tap Repeatedly. Retrieved 22 July 2017.
  24. ^John Walker (11 March 2009). 'What Cruel Teeth You've Got: The Path Impressions'. Rock, Paper, Shotgun. Retrieved 22 July 2017.
  25. ^Steven Poole (20 August 2009). 'Into the Woods'. Trigger Happy. Archived from the original on 5 July 2010.
  26. ^'2008 Independent Games Festival Winners'. The 11th Annual Independent Games Festival. Think Services. 2008. Archived from the original on 3 March 2009. Retrieved 29 March 2009.
  27. ^'I Certamen Internacional de videojuegos hóPlay'. Alhondiga Bilbao. 2010.Cite journal requires |journal= (help)

External links[edit]

The Path Hulu

Retrieved from 'https://en.wikipedia.org/w/index.php?title=The_Path_(video_game)&oldid=988637517'