В ос windows корневой каталог в пути указывается символом

A path is a string of characters used to uniquely identify a location in a directory structure. It is composed by following the directory tree hierarchy in which components, separated by a delimiting character, represent each directory. The delimiting character is most commonly the slash ("/"), the backslash character (""), or colon (":"), though some operating systems may use a different delimiter. Paths are used extensively in computer science to represent the directory/file relationships common in modern operating systems and are essential in the construction of Uniform Resource Locators (URLs). Resources can be represented by either absolute or relative paths.

A path is a string of characters used to uniquely identify a location in a directory structure. It is composed by following the directory tree hierarchy in which components, separated by a delimiting character, represent each directory. The delimiting character is most commonly the slash («/»), the backslash character («»), or colon («:»), though some operating systems may use a different delimiter. Paths are used extensively in computer science to represent the directory/file relationships common in modern operating systems and are essential in the construction of Uniform Resource Locators (URLs). Resources can be represented by either absolute or relative paths.

History[edit]

Multics first introduced a hierarchical file system with directories (separated by «>») in the mid-1960s.[1]

Around 1970, Unix introduced the slash character («/») as its directory separator.

In 1981, the first version of Microsoft DOS was released. MS-DOS 1.0 did not support file directories. Also, a major portion of the utility commands packaged with MS-DOS 1.0 came from IBM and their command line syntax used the slash character as a ‘switch’ prefix. For example, dir /w runs the dir command with the wide list format option.

This use of slash can still be found in the command interface under Microsoft Windows. By contrast, Unix uses the dash («-«) character as a command line switch prefix.

When directory support was added to MS-DOS in version 2.0, «/» was kept as the switch prefix character for backwards compatibility. Microsoft chose the backslash character («») as a directory separator, which looks similar to the slash character, though more modern version of Windows are slash-agnostic, allowing mixage of both types of slashes in a path.[2][3]

Absolute and relative paths[edit]

An absolute or full path points to the same location in a file system, regardless of the current working directory. To do that, it must include the root directory.

By contrast, a relative path starts from some given working directory, avoiding the need to provide the full absolute path. A filename can be considered as a relative path based at the current working directory. If the working directory is not the file’s parent directory, a file not found error will result if the file is addressed by its name.

Representations of paths by operating system and shell[edit]

Operating
system
Shell Root
directory
Directory
separator
Current
directory
Parent
directory
Home
directory
Examples
Unix-like OS
(incl. macOS)
Unix shell / / . .. ~ /home/user/docs/Letter.txt
./inthisdir
../../greatgrandparent
~/.rcinfo
DOS COMMAND.COM [drive letter:] or
\[server name][volume]
. .. C:USERDOCSLETTER.TXT
A:PICTURE.JPG
\SERVER01USERDOCSLETTER.TXT
OS/2 cmd.exe [drive letter:] or
\[server name][volume]
/ or . .. C:userdocsLetter.txt
A:Picture.jpg
\SERVER01USERdocsLetter.txt
Microsoft
Windows
cmd.exe (relative to current working directory root)
or [drive_letter]:
or \[server][sharename]
or \?[drive_spec]:
or \?UNC[server][sharename]
or \.[physical_device][4]
/ or ,

The Japanese edition uses ¥, the Korean version uses ₩ as Path separator

. ..[5] C:userdocsLetter.txt
/user/docs/Letter.txt
C:Letter.txt
\Server01userdocsLetter.txt
\?UNCServer01userdocsLetter.txt
\?C:userdocsLetter.txt
C:userdocssomefile.ext:alternate stream name
./inthisdir
../../greatgrandparent
Windows PowerShell [drive letter:]/ or [drive name:]or
\[server name] or

[PSSnapIn name][PSProvider name:][:PSDrive root]

/ or . .. ~ C:userdocsLetter.txt
C:user/docsLetter.txt
\Server01userdocsLetter.txt
cd ~Desktop

UserDocs:/Letter.txt
Variable:PSVersionTable
Registry::HKEY_LOCAL_MACHINESOFTWARE
Microsoft.PowerShell.SecurityCertificate::CurrentUser

TOPS-20 DCL [device name:] . PS:<USER.DOCS>LETTER.TXT,4
RSX-11 MCR [device name:] DR0:[30,12]LETTER.TXT;4
OpenVMS DCL [device name:][000000] or

[NODE["accountname password"]]::[device name][000000]:

. [] [-] SYS$LOGIN: SYS$SYSDEVICE:[USER.DOCS]PHOTO.JPG

[]IN_THIS_DIR.COM;
[-.-]GreatGrandParent.TXT
SYS$SYSDEVICE:[.DRAFTS]LETTER.TXT;4
GEIN::[000000]LETTER.TXT;4
SYS$LOGIN:LOGIN.COM

Classic
Mac OS
[volume or drive name]: : : :: Macintosh HD:Documents:Letter
:fileincurrentdir
::fileinparent
:::fileingrandparent
ProDOS AppleSoft BASIC /[volume or drive name]/ / /SCHOOL.DISK/APPLEWORKS/MY.REPORT

FLIGHT.SIMULATOR,D2

AmigaOS Amiga CLI /
AmigaShell
[drive, volume, device or assign name]: / ""
(empty string)
/ Workbench:Utilities/MultiView
DF0:S/Startup-Sequence
S:Startup-Sequence
TCP:en.wikipedia.com/80
RISC OS ShellCLI [fs type[#option]:][:drive number or disc name.]$

note: &, % and @ can also be used to reference the root
of the current user, the library and the current (working) directory respectively.

. @ ^ & ADFS::MyDrive.$.Documents.Letter
Net#MainServer::DataDrive.$.Main.sy10823
LanMan::WindowsC.$.Pictures.Japan/gif
NFS:&.!Choices
ADFS:%.IfThere
@.inthisdir
^.^.greatgrandparent

When filesystems with filename extensions are mounted,
‘.’ characters are changed to ‘/’, as in the Japan/gif example above.

Symbian OS File manager userdocsLetter.txt
Domain/OS Shell

// (root of domain)
/ (root of current node)

/ . ~ //node/home/user/docs/Letter.txt
./inthisdir
\greatgrandparent
~rcinfo
MenuetOS CMD / /
Stratus VOS VOS command-line
interpreter
%[system_name]#[module_name]> > < %sysname#module1>SubDir>AnotherDir
NonStop
Kernel
TACL
Tandem Advanced
Command Language
No root . no parent
directory
NODE.$DISK.SUBVOL.FILE
NODE.$DEVICE
NODE.$DEVICE.#SUBDEV.QUALIFIER
CP/M CCP [drive letter:] no directory support, just user areas 0–F A:LETTER.TXT
GS/OS :[volume name]: or .[device name]: or [prefix]:

note: prefix may be a number (0–31), * (boot volume) or @ (AppleShare home directory)

: or / @ :Apps:Platinum.Paint:Platinum.Paint
*:System:Finder
.APPLEDISK3.5B/file

Japanese and Korean versions of Windows may often display the ‘¥’ character or the ‘₩’ character instead of the directory separator. In such cases the code for a backslash is being drawn as these characters. Very early versions of MS-DOS replaced the backslash with these glyphs on the display to make it possible to display them by programs that only understood 7-bit ASCII (other characters such as the square brackets were replaced as well, see ISO 646, Windows Codepage 932 (Japanese Shift JIS), and Codepage 949 (Korean)). Although even the first version of Windows supported the 8-bit ISO-8859-1 character set which has the Yen sign at U+00A5, and modern versions of Windows supports Unicode which has the Won sign at U+20A9, much software will continue to display backslashes found in ASCII files this way to preserve backwards compatibility.[6]

Mac OS X, as a derivative of UNIX, uses UNIX paths internally. However, to preserve compatibility for software and familiarity for users, many portions of the GUI switch «/» typed by the user to «:» internally, and switch them back when displaying filenames (a «:» entered by the user is also changed into «/» but the inverse translation does not happen).

Paths in programming languages[edit]

Programming languages also use paths. E.g.: When a file is opened. Most programming languages use the path representation of the underlying operating system:

 uxFile = fopen("project/readme.txt", "r")
 winFile = fopen("C:\Program Files\bin\config.bat", "r")

This direct access to the operating system paths can hinder the portability of programs. To support portable programs Java uses File.separator to distinguish between / and separated paths. Seed7 has a different approach for the path representation. In Seed7 all paths use the Unix path convention, independent of the operating system. Under windows a mapping takes place (e.g.: The path /c/users is mapped to c:users).

Universal Naming Convention[edit]


The Microsoft Windows UNC, short for Universal Naming Convention or Uniform Naming Convention, specifies a common syntax to describe the location of a network resource, such as a shared file, directory, or printer. The UNC syntax for Windows systems has the generic form:

\ComputerNameSharedFolderResource

Microsoft often refers to this as a «network path«.

Some Microsoft Windows interfaces also allow or require UNC syntax for WebDAV share access, rather than a URL. The UNC syntax is extended[7] with optional components to denote use of SSL and TCP/IP port number, a WebDAV URL of http[s]://HostName[:Port]/SharedFolder/Resource becomes

\HostName[@SSL][@Port]SharedFolderResource

When viewed remotely, the «SharedFolder» may have a name different from what a program on the server sees when opening «SharedFolder». Instead, the SharedFolder name consists of an arbitrary name assigned to the folder when defining its «sharing».

Some Microsoft Windows interfaces also accept the «Long UNC»:

\?UNCComputerNameSharedFolderResource

Microsoft Windows uses the following types of paths:

  • local file system (LFS), such as C:File
  • universal naming convention (UNC), such as \ServerVolumeFile or /<internet resource name>[Directory name] (at least in Windows 7 and later)
  • «long» device path such as \?C:File or \?UNCServerVolumeFile.[8] This path points to the local file namespace and \. is a similar one that points to the local DOS device namespace. This format is also the «raw» or «uninterpreted» path, since it sends paths straight to the file system without converting / to and interpreting names like ...[9]
  • Windows NT object manager \??-prefixed paths (global DOS namespace).[10][11]

In versions of Windows prior to Windows XP, only the APIs that accept «long» device paths could accept more than 260 characters.

The shell in Windows XP and Windows Vista, explorer.exe, allows path names up to 248 characters long.[citation needed]

Since UNCs start with two backslashes, and the backslash is also used for string escaping and in regular expressions, this can result in extreme cases of leaning toothpick syndrome: an escaped string for a regular expression matching a UNC begins with 8 backslashes – \\\\ – because the string and regular expression both require escaping. This can be simplified by using raw strings, as in C#’s @"\\" or Python’s r'\\', or regular expression literals, as in Perl’s qr{\\}.

POSIX pathname definition[edit]

Most Unix-like systems use a similar syntax.[12]
POSIX allows treating a path beginning with two slashes in an implementation-defined manner,[13]
though in other cases systems must treat multiple slashes as single slashes.[14]
Many applications on Unix-like systems (for example, scp, rcp and rsync) use resource definitions such as:

hostname:/directorypath/resource

or URI schemes with the service name (here ‘smb’):

smb://hostname/directorypath/resource

Example[edit]

Unix style[edit]

The following worked example discusses the behavior of a Unix-style file system as it would appear from a terminal or terminal application (command-line window):

Attached to a current working directory (cwd) of:

/users/mark/

One wants to change the current working directory to:

/users/mark/bobapples

At that moment, the relative path for the desired directory can be represented as:

./bobapples

or for short:

bobapples

and the absolute path for the directory as:

/users/mark/bobapples

Given bobapples as the relative path for the directory wanted, the following may be typed at the command prompt to change the current working directory to bobapples:

cd bobapples

Two dots («..«) point upwards in the hierarchy, to indicate the parent directory; one dot («.«) represents the current directory itself. Both can be components of a complex relative path (e.g., «../mark/./bobapples«), where «.» alone or as the first component of such a relative path represents the working directory. (Using «./foo» to refer to a file «foo» in the current working directory can sometimes usefully distinguish it from a resource «foo» to be found in a default directory or by other means; for example, to view a specific version of a manual page instead of the one installed in the system.)

MS-DOS/Microsoft Windows style[edit]

Contrary to popular belief, the Windows system API accepts slash, and thus all the above Unix examples should work. But many applications on Windows interpret a slash for other purposes or treat it as an invalid character, and thus require you to enter backslash – notably the cmd.exe shell (often called the «terminal» as it typically runs in a terminal window). Note that many other shells available for Windows, such as tcsh and Windows PowerShell, allow the slash.

In addition «» does not indicate a single root, but instead the root of the «current disk». Indicating a file on a disk other than the current one requires prefixing a drive letter and colon. No ambiguity ensues, because colon is not a valid character in an MS-DOS filename, and thus one cannot have a file called «A:» in the current directory.

UNC names (any path starting with \?) do not support slashes.[15]

The following examples show MS-DOS/Windows-style paths, with backslashes used to match the most common syntax:

A:TempFile.txt

This path points to a file with the name File.txt, located in the directory Temp, which in turn is located in the root directory of the drive A:.

C:..File.txt

This path refers to a file called File.txt located in the parent directory of the current directory on drive C:.

FolderSubFolderFile.txt

This path denotes a file called File.txt located in SubFolder directory which in turn is located in Folder directory which is located in the current directory of the current drive (since this example gives no drive-specification).

File.txt

This rather simple path points to a file named File.txt located in the current directory (since the path lacks a directory-specification) on the current drive (since no drive specification is present).

\.COM1

This path refers to the first serial port (COM1).

C:>more < C:/Windows/system.ini
; for 16-bit app support
[386Enh]
woafont=dosapp.fon
EGA80WOA.FON=EGA80WOA.FON
EGA40WOA.FON=EGA40WOA.FON
CGA80WOA.FON=CGA80WOA.FON
CGA40WOA.FON=CGA40WOA.FON
...

This example uses a path containing slashes as directory separator. The command redirects the content of the file to the more command.

E:>dir "/Folder/SubFolder/" /Q
 Volume in drive E is Data
 Volume Serial Number is 07BE-0B10

 Directory of E:FolderSubFolder

18 October 2008 08:15 AM <DIR> DOMAINuser .
18 October 2008 08:15 AM <DIR> DOMAINuser ..
18 October 2008 08:15 AM <DIR> DOMAINuser File.txt
               1 File(s)          8 bytes
               2 Dir(s)  19,063,000 bytes free

A path containing forward slashes often needs to be surrounded by double quotes to disambiguate it from command line switches.

  • note: CD does not work this way:

CD «[drive letter]:/Program Files» will only work from the root ([drive letter]:) directory. This appears to treat all forward slashes the same as ..[citation needed]

  • exception: Use the /D switch to change current drive in addition to changing current directory for a drive.

For example:

CD "C:.Program Files"

works the same as

CD "C:/Program Files"

Also, from a root folder:

CD "C:.Program Files.Internet Explorer"

would be treated the same as

CD "C:/Program Files/Internet Explorer"

If there is no relative path to the directory name specified with forward slashes you will get the following error:

The system cannot find the path specified.

For setting environment variables, it is sometimes necessary to provide a path that does not contain spaces in it, for instance %JAVA_HOME% defined as «C:Program FilesJava…» can cause scripts to halt when they encounter the space in the path name. To get the eight-character name Windows assigns to any directory for substitution in environment variables, use the directory listing command with the /x option one level up from the target directory. For instance, the following will get you the eight character name for all directories directly under root:

See also[edit]

  • Filename
  • basename
  • Device file
  • dirname
  • Distributed file system (DFS)
  • Filesystem Hierarchy Standard (FHS)
  • Fully qualified file name
  • PATH (variable)
  • Uniform Resource Locator (URL)

References[edit]

  1. ^ Daley, R.C.; Neumann, P.G. (1965). «A general-purpose file system for secondary storage». AFIPS Proceedings of the Joint Computer Conference. Part I: 213–229. doi:10.1145/1463891.1463915. S2CID 16236414.
  2. ^ «Why Windows Uses Backslashes and Everything else Uses Forward Slashes».
  3. ^ «Why is the DOS path character .
  4. ^ Naming Files, Paths, and Namespaces
  5. ^ «cd». Windows Commands : Windows Server. Microsoft Docs. Retrieved 14 July 2019.
  6. ^ Sorting it all Out: When is a backslash not a backslash?
  7. ^ «DavGetHTTPFromUNCPath function». WebDAV : Windows. Microsoft Docs. series. Retrieved 14 July 2019.
  8. ^ «File path formats on Windows systems». File and Stream I/O : .NET. Microsoft Docs. Retrieved 14 July 2019.
  9. ^ «Naming Files, Paths, and Namespaces — Win32 apps». docs.microsoft.com.
  10. ^ «winapi — Is there a difference between ?? and \? paths?». Stack Overflow.
  11. ^ «Path prefixes ?? and \?». Stack Overflow.
  12. ^ UNC Definition by ComputerLanguage.com
  13. ^ POSIX pathname resolution specification
  14. ^ POSIX pathname definition
  15. ^ «Naming Files, Paths, and Namespaces». Local File Systems : Windows. Microsoft Docs. Retrieved 14 July 2019.

External links[edit]

  • Path Definition — The Linux Information Project (LINFO)
  • Naming Files, Paths, and Namespaces — Local File Systems : Windows : Microsoft Docs

A path is a string of characters used to uniquely identify a location in a directory structure. It is composed by following the directory tree hierarchy in which components, separated by a delimiting character, represent each directory. The delimiting character is most commonly the slash («/»), the backslash character («»), or colon («:»), though some operating systems may use a different delimiter. Paths are used extensively in computer science to represent the directory/file relationships common in modern operating systems and are essential in the construction of Uniform Resource Locators (URLs). Resources can be represented by either absolute or relative paths.

History[edit]

Multics first introduced a hierarchical file system with directories (separated by «>») in the mid-1960s.[1]

Around 1970, Unix introduced the slash character («/») as its directory separator.

In 1981, the first version of Microsoft DOS was released. MS-DOS 1.0 did not support file directories. Also, a major portion of the utility commands packaged with MS-DOS 1.0 came from IBM and their command line syntax used the slash character as a ‘switch’ prefix. For example, dir /w runs the dir command with the wide list format option.

This use of slash can still be found in the command interface under Microsoft Windows. By contrast, Unix uses the dash («-«) character as a command line switch prefix.

When directory support was added to MS-DOS in version 2.0, «/» was kept as the switch prefix character for backwards compatibility. Microsoft chose the backslash character («») as a directory separator, which looks similar to the slash character, though more modern version of Windows are slash-agnostic, allowing mixage of both types of slashes in a path.[2][3]

Absolute and relative paths[edit]

An absolute or full path points to the same location in a file system, regardless of the current working directory. To do that, it must include the root directory.

By contrast, a relative path starts from some given working directory, avoiding the need to provide the full absolute path. A filename can be considered as a relative path based at the current working directory. If the working directory is not the file’s parent directory, a file not found error will result if the file is addressed by its name.

Representations of paths by operating system and shell[edit]

Operating
system
Shell Root
directory
Directory
separator
Current
directory
Parent
directory
Home
directory
Examples
Unix-like OS
(incl. macOS)
Unix shell / / . .. ~ /home/user/docs/Letter.txt
./inthisdir
../../greatgrandparent
~/.rcinfo
DOS COMMAND.COM [drive letter:] or
\[server name][volume]
. .. C:USERDOCSLETTER.TXT
A:PICTURE.JPG
\SERVER01USERDOCSLETTER.TXT
OS/2 cmd.exe [drive letter:] or
\[server name][volume]
/ or . .. C:userdocsLetter.txt
A:Picture.jpg
\SERVER01USERdocsLetter.txt
Microsoft
Windows
cmd.exe (relative to current working directory root)
or [drive_letter]:
or \[server][sharename]
or \?[drive_spec]:
or \?UNC[server][sharename]
or \.[physical_device][4]
/ or ,

The Japanese edition uses ¥, the Korean version uses ₩ as Path separator

. ..[5] C:userdocsLetter.txt
/user/docs/Letter.txt
C:Letter.txt
\Server01userdocsLetter.txt
\?UNCServer01userdocsLetter.txt
\?C:userdocsLetter.txt
C:userdocssomefile.ext:alternate stream name
./inthisdir
../../greatgrandparent
Windows PowerShell [drive letter:]/ or [drive name:]or
\[server name] or

[PSSnapIn name][PSProvider name:][:PSDrive root]

/ or . .. ~ C:userdocsLetter.txt
C:user/docsLetter.txt
\Server01userdocsLetter.txt
cd ~Desktop

UserDocs:/Letter.txt
Variable:PSVersionTable
Registry::HKEY_LOCAL_MACHINESOFTWARE
Microsoft.PowerShell.SecurityCertificate::CurrentUser

TOPS-20 DCL [device name:] . PS:<USER.DOCS>LETTER.TXT,4
RSX-11 MCR [device name:] DR0:[30,12]LETTER.TXT;4
OpenVMS DCL [device name:][000000] or

[NODE["accountname password"]]::[device name][000000]:

. [] [-] SYS$LOGIN: SYS$SYSDEVICE:[USER.DOCS]PHOTO.JPG

[]IN_THIS_DIR.COM;
[-.-]GreatGrandParent.TXT
SYS$SYSDEVICE:[.DRAFTS]LETTER.TXT;4
GEIN::[000000]LETTER.TXT;4
SYS$LOGIN:LOGIN.COM

Classic
Mac OS
[volume or drive name]: : : :: Macintosh HD:Documents:Letter
:fileincurrentdir
::fileinparent
:::fileingrandparent
ProDOS AppleSoft BASIC /[volume or drive name]/ / /SCHOOL.DISK/APPLEWORKS/MY.REPORT

FLIGHT.SIMULATOR,D2

AmigaOS Amiga CLI /
AmigaShell
[drive, volume, device or assign name]: / ""
(empty string)
/ Workbench:Utilities/MultiView
DF0:S/Startup-Sequence
S:Startup-Sequence
TCP:en.wikipedia.com/80
RISC OS ShellCLI [fs type[#option]:][:drive number or disc name.]$

note: &, % and @ can also be used to reference the root
of the current user, the library and the current (working) directory respectively.

. @ ^ & ADFS::MyDrive.$.Documents.Letter
Net#MainServer::DataDrive.$.Main.sy10823
LanMan::WindowsC.$.Pictures.Japan/gif
NFS:&.!Choices
ADFS:%.IfThere
@.inthisdir
^.^.greatgrandparent

When filesystems with filename extensions are mounted,
‘.’ characters are changed to ‘/’, as in the Japan/gif example above.

Symbian OS File manager userdocsLetter.txt
Domain/OS Shell

// (root of domain)
/ (root of current node)

/ . ~ //node/home/user/docs/Letter.txt
./inthisdir
\greatgrandparent
~rcinfo
MenuetOS CMD / /
Stratus VOS VOS command-line
interpreter
%[system_name]#[module_name]> > < %sysname#module1>SubDir>AnotherDir
NonStop
Kernel
TACL
Tandem Advanced
Command Language
No root . no parent
directory
NODE.$DISK.SUBVOL.FILE
NODE.$DEVICE
NODE.$DEVICE.#SUBDEV.QUALIFIER
CP/M CCP [drive letter:] no directory support, just user areas 0–F A:LETTER.TXT
GS/OS :[volume name]: or .[device name]: or [prefix]:

note: prefix may be a number (0–31), * (boot volume) or @ (AppleShare home directory)

: or / @ :Apps:Platinum.Paint:Platinum.Paint
*:System:Finder
.APPLEDISK3.5B/file

Japanese and Korean versions of Windows may often display the ‘¥’ character or the ‘₩’ character instead of the directory separator. In such cases the code for a backslash is being drawn as these characters. Very early versions of MS-DOS replaced the backslash with these glyphs on the display to make it possible to display them by programs that only understood 7-bit ASCII (other characters such as the square brackets were replaced as well, see ISO 646, Windows Codepage 932 (Japanese Shift JIS), and Codepage 949 (Korean)). Although even the first version of Windows supported the 8-bit ISO-8859-1 character set which has the Yen sign at U+00A5, and modern versions of Windows supports Unicode which has the Won sign at U+20A9, much software will continue to display backslashes found in ASCII files this way to preserve backwards compatibility.[6]

Mac OS X, as a derivative of UNIX, uses UNIX paths internally. However, to preserve compatibility for software and familiarity for users, many portions of the GUI switch «/» typed by the user to «:» internally, and switch them back when displaying filenames (a «:» entered by the user is also changed into «/» but the inverse translation does not happen).

Paths in programming languages[edit]

Programming languages also use paths. E.g.: When a file is opened. Most programming languages use the path representation of the underlying operating system:

 uxFile = fopen("project/readme.txt", "r")
 winFile = fopen("C:\Program Files\bin\config.bat", "r")

This direct access to the operating system paths can hinder the portability of programs. To support portable programs Java uses File.separator to distinguish between / and separated paths. Seed7 has a different approach for the path representation. In Seed7 all paths use the Unix path convention, independent of the operating system. Under windows a mapping takes place (e.g.: The path /c/users is mapped to c:users).

Universal Naming Convention[edit]


The Microsoft Windows UNC, short for Universal Naming Convention or Uniform Naming Convention, specifies a common syntax to describe the location of a network resource, such as a shared file, directory, or printer. The UNC syntax for Windows systems has the generic form:

\ComputerNameSharedFolderResource

Microsoft often refers to this as a «network path«.

Some Microsoft Windows interfaces also allow or require UNC syntax for WebDAV share access, rather than a URL. The UNC syntax is extended[7] with optional components to denote use of SSL and TCP/IP port number, a WebDAV URL of http[s]://HostName[:Port]/SharedFolder/Resource becomes

\HostName[@SSL][@Port]SharedFolderResource

When viewed remotely, the «SharedFolder» may have a name different from what a program on the server sees when opening «SharedFolder». Instead, the SharedFolder name consists of an arbitrary name assigned to the folder when defining its «sharing».

Some Microsoft Windows interfaces also accept the «Long UNC»:

\?UNCComputerNameSharedFolderResource

Microsoft Windows uses the following types of paths:

  • local file system (LFS), such as C:File
  • universal naming convention (UNC), such as \ServerVolumeFile or /<internet resource name>[Directory name] (at least in Windows 7 and later)
  • «long» device path such as \?C:File or \?UNCServerVolumeFile.[8] This path points to the local file namespace and \. is a similar one that points to the local DOS device namespace. This format is also the «raw» or «uninterpreted» path, since it sends paths straight to the file system without converting / to and interpreting names like ...[9]
  • Windows NT object manager \??-prefixed paths (global DOS namespace).[10][11]

In versions of Windows prior to Windows XP, only the APIs that accept «long» device paths could accept more than 260 characters.

The shell in Windows XP and Windows Vista, explorer.exe, allows path names up to 248 characters long.[citation needed]

Since UNCs start with two backslashes, and the backslash is also used for string escaping and in regular expressions, this can result in extreme cases of leaning toothpick syndrome: an escaped string for a regular expression matching a UNC begins with 8 backslashes – \\\\ – because the string and regular expression both require escaping. This can be simplified by using raw strings, as in C#’s @"\\" or Python’s r'\\', or regular expression literals, as in Perl’s qr{\\}.

POSIX pathname definition[edit]

Most Unix-like systems use a similar syntax.[12]
POSIX allows treating a path beginning with two slashes in an implementation-defined manner,[13]
though in other cases systems must treat multiple slashes as single slashes.[14]
Many applications on Unix-like systems (for example, scp, rcp and rsync) use resource definitions such as:

hostname:/directorypath/resource

or URI schemes with the service name (here ‘smb’):

smb://hostname/directorypath/resource

Example[edit]

Unix style[edit]

The following worked example discusses the behavior of a Unix-style file system as it would appear from a terminal or terminal application (command-line window):

Attached to a current working directory (cwd) of:

/users/mark/

One wants to change the current working directory to:

/users/mark/bobapples

At that moment, the relative path for the desired directory can be represented as:

./bobapples

or for short:

bobapples

and the absolute path for the directory as:

/users/mark/bobapples

Given bobapples as the relative path for the directory wanted, the following may be typed at the command prompt to change the current working directory to bobapples:

cd bobapples

Two dots («..«) point upwards in the hierarchy, to indicate the parent directory; one dot («.«) represents the current directory itself. Both can be components of a complex relative path (e.g., «../mark/./bobapples«), where «.» alone or as the first component of such a relative path represents the working directory. (Using «./foo» to refer to a file «foo» in the current working directory can sometimes usefully distinguish it from a resource «foo» to be found in a default directory or by other means; for example, to view a specific version of a manual page instead of the one installed in the system.)

MS-DOS/Microsoft Windows style[edit]

Contrary to popular belief, the Windows system API accepts slash, and thus all the above Unix examples should work. But many applications on Windows interpret a slash for other purposes or treat it as an invalid character, and thus require you to enter backslash – notably the cmd.exe shell (often called the «terminal» as it typically runs in a terminal window). Note that many other shells available for Windows, such as tcsh and Windows PowerShell, allow the slash.

In addition «» does not indicate a single root, but instead the root of the «current disk». Indicating a file on a disk other than the current one requires prefixing a drive letter and colon. No ambiguity ensues, because colon is not a valid character in an MS-DOS filename, and thus one cannot have a file called «A:» in the current directory.

UNC names (any path starting with \?) do not support slashes.[15]

The following examples show MS-DOS/Windows-style paths, with backslashes used to match the most common syntax:

A:TempFile.txt

This path points to a file with the name File.txt, located in the directory Temp, which in turn is located in the root directory of the drive A:.

C:..File.txt

This path refers to a file called File.txt located in the parent directory of the current directory on drive C:.

FolderSubFolderFile.txt

This path denotes a file called File.txt located in SubFolder directory which in turn is located in Folder directory which is located in the current directory of the current drive (since this example gives no drive-specification).

File.txt

This rather simple path points to a file named File.txt located in the current directory (since the path lacks a directory-specification) on the current drive (since no drive specification is present).

\.COM1

This path refers to the first serial port (COM1).

C:>more < C:/Windows/system.ini
; for 16-bit app support
[386Enh]
woafont=dosapp.fon
EGA80WOA.FON=EGA80WOA.FON
EGA40WOA.FON=EGA40WOA.FON
CGA80WOA.FON=CGA80WOA.FON
CGA40WOA.FON=CGA40WOA.FON
...

This example uses a path containing slashes as directory separator. The command redirects the content of the file to the more command.

E:>dir "/Folder/SubFolder/" /Q
 Volume in drive E is Data
 Volume Serial Number is 07BE-0B10

 Directory of E:FolderSubFolder

18 October 2008 08:15 AM <DIR> DOMAINuser .
18 October 2008 08:15 AM <DIR> DOMAINuser ..
18 October 2008 08:15 AM <DIR> DOMAINuser File.txt
               1 File(s)          8 bytes
               2 Dir(s)  19,063,000 bytes free

A path containing forward slashes often needs to be surrounded by double quotes to disambiguate it from command line switches.

  • note: CD does not work this way:

CD «[drive letter]:/Program Files» will only work from the root ([drive letter]:) directory. This appears to treat all forward slashes the same as ..[citation needed]

  • exception: Use the /D switch to change current drive in addition to changing current directory for a drive.

For example:

CD "C:.Program Files"

works the same as

CD "C:/Program Files"

Also, from a root folder:

CD "C:.Program Files.Internet Explorer"

would be treated the same as

CD "C:/Program Files/Internet Explorer"

If there is no relative path to the directory name specified with forward slashes you will get the following error:

The system cannot find the path specified.

For setting environment variables, it is sometimes necessary to provide a path that does not contain spaces in it, for instance %JAVA_HOME% defined as «C:Program FilesJava…» can cause scripts to halt when they encounter the space in the path name. To get the eight-character name Windows assigns to any directory for substitution in environment variables, use the directory listing command with the /x option one level up from the target directory. For instance, the following will get you the eight character name for all directories directly under root:

See also[edit]

  • Filename
  • basename
  • Device file
  • dirname
  • Distributed file system (DFS)
  • Filesystem Hierarchy Standard (FHS)
  • Fully qualified file name
  • PATH (variable)
  • Uniform Resource Locator (URL)

References[edit]

  1. ^ Daley, R.C.; Neumann, P.G. (1965). «A general-purpose file system for secondary storage». AFIPS Proceedings of the Joint Computer Conference. Part I: 213–229. doi:10.1145/1463891.1463915. S2CID 16236414.
  2. ^ «Why Windows Uses Backslashes and Everything else Uses Forward Slashes».
  3. ^ «Why is the DOS path character .
  4. ^ Naming Files, Paths, and Namespaces
  5. ^ «cd». Windows Commands : Windows Server. Microsoft Docs. Retrieved 14 July 2019.
  6. ^ Sorting it all Out: When is a backslash not a backslash?
  7. ^ «DavGetHTTPFromUNCPath function». WebDAV : Windows. Microsoft Docs. series. Retrieved 14 July 2019.
  8. ^ «File path formats on Windows systems». File and Stream I/O : .NET. Microsoft Docs. Retrieved 14 July 2019.
  9. ^ «Naming Files, Paths, and Namespaces — Win32 apps». docs.microsoft.com.
  10. ^ «winapi — Is there a difference between ?? and \? paths?». Stack Overflow.
  11. ^ «Path prefixes ?? and \?». Stack Overflow.
  12. ^ UNC Definition by ComputerLanguage.com
  13. ^ POSIX pathname resolution specification
  14. ^ POSIX pathname definition
  15. ^ «Naming Files, Paths, and Namespaces». Local File Systems : Windows. Microsoft Docs. Retrieved 14 July 2019.

External links[edit]

  • Path Definition — The Linux Information Project (LINFO)
  • Naming Files, Paths, and Namespaces — Local File Systems : Windows : Microsoft Docs

Путь к файлу – это набор символов, который показывает расположение того или иного файла в операционной системе. Запись, которая включает в себя разделительный знак в виде «» (обратного слеша). Также существуют пути каталогов. Все они используются в файловых системах компьютеров и иных устройств.

Работать с соответствующим элементом предстоит всем, кто пользуется оборудованием: программистам, системным администраторам, обычным пользователям. В данной статье речь зайдет о видах путей к каталогам и документам. Предложенная информация поможет классифицировать соответствующие «символьные наборы», а также научит пользоваться ими.

Особенности

Определение пути к каталогу или файлу можно дать как «маршрут». Это – «дорога», по которой нужно пройти, чтобы отыскать конкретные директории или документы на устройстве. Последовательность, записываемая по определенным принципам. Форма представления зависит от вида путей каталогам.

За основу возьмем работу в операционной системе Windows (Виндовс). Здесь рекомендуется запомнить такие нюансы:

  1. Есть «маршрут» начинается с обратного слеша (символ обратной косой черты), то система будет воспринимать его, как идущий от корневого каталога.
  2. Каждое имя каталога или файла, указанное в пути, должно соответствовать входу в папку.
  3. Символ «…» (многоточие) – это переход в родительский каталог.
  4. Слеш «/» — указывает, куда делать следующий «шаг».

Это – база, без которой дальнейшая работа с Windows и «маршрутами» в ней невозможна.

Имя

Путь к файлу не получится указать, если не знать, как правильно пишется его имя. То же самое касается и папок. Для поиска директории или документов максимально эффективно и быстро, необходимо узнать полное имя того или иного объекта.

Имя файла в системах DOS и Windows включает в себя три элемента:

  • непосредственное название – имя;
  • разделитель (точка);
  • расширение (тип информации, с которой предстоит работать).

По умолчанию в Виндовс расширения (виды) документов скрыты. Эта информация среднестатистическому пользователю не нужна. Способов узнать расширение документа несколько. Пример – через параметр «Свойства». Методов включения отображения расширения тоже несколько – все зависит от конкретной операционной системы.

MS DOS определяет для имени всего 8 символов. Такое ограничение было в старых версиях операционных систем. Теперь оно упразднено, но это не значит, что нужно давать документам слишком длинные названия. Это усложнит поиск пути к файлу. 

Разновидности

Для получения доступа к той или иной директории, а также любому документу на устройстве, нужно знать, где он размещается. Здесь на помощь придет путь к файлу. Он может быть нескольких видов:

  • относительный;
  • абсолютный.

Зная особенности каждого варианта, можно выучить, как правильно записать каждую форму представления, а также использовать соответствующую последовательность на практике.

Относительный вид

Относительный путь к файлу – это «маршрут» к документу относительно текущего каталога. Текущий каталог – это тот, в котором запускается программа, скрипт или открывается страница в браузере.

Он ссылается на местоположение относительно текущей директории. Используют два специальных символа:

  1. Точку «.». Используя этот символ, можно перейти в текущий каталог.
  2. Двойную точку «..». Позволяет посмотреть (перейти) в родительский каталог. Используется для перехода на один уровень вверх.

Выше – наглядный пример расположения файлов в системе. Эта графическая последовательность используется для быстрого поиска конкретного документа на компьютере. Она поможет понять, как правильно указать путь к файлу относительного вида.

Для перехода в Posters нужно записать такую последовательность: D:DataMapsPosters. Соответствующая запись указывает на то, что нужно перейти на диск D, затем в директорию Posters, которая расположена в Maps. Последняя вложена в Data, размещенной на разделе диска с именем D.

Текущая директория – это корневая папка. После перехода в каталог Posters именно он будет выступать корневым.

Нюансы работы

Понятие путей к файлам, а также к каталогам понятно. Также стало понятно, что обозначает относительный «маршрут». Чтобы лучше работать с ним, рекомендуется рассмотреть наглядный практический пример. За основу возьмем документы, которые находятся на устройстве по образцу выше.

Предположим, что хочется перейти к папке Landuse из текущей директории, которая называется Soils. Чтобы переключиться туда, нужно:

  1. Открыть адресную строчку Windows.
  2. Узнать путь к файлу или директории. В нашем случае – к конкретной папке.
  3. Написать в адресной строчке запись формы: ..Landuse.

В данном случае Windows произведет поиск каталога, после чего перейдет в D:DataShapefilesLanduse.

Абсолютный путь

Абсолютный путь к файлу означает полный «маршрут» до документа или архива. Он включает в себя все диски, а также имена папок и файлов, которые нужно открыть для перехода к заданному изначально объекту.

Файловая система Windows работает преимущественно с таким вариантом. Он наиболее прост для понимания среднестатистических пользователей. В Виндовс все начинается с диска или его раздела. Традиционно он записывается как одна буква:

  • D;
  • C;
  • E.

Абсолютно сформированный путь к до файла формируется по определенному принципу. Его легко запомнить. Он выглядит так:

  1. Начинается всегда с диска, на котором находится тот или иной объект. Это – корневой диск.
  2. Все вложенные папки. Все то, куда будет заходить пользователь или файловая система, чтобы искать объект.
  3. Имя файла. Оно должно быть записано корректно. Желательно вместе с расширением (типом).

Сейчас покажу, как выглядит путь до файла статья.txt:

Стоит обратить внимание на принципы правильного формирования пути к файлу: начинается с диска, на котором расположен, а разделяющими символами служат обратные слеши. Предложенная ранее запись показывает, что файл статья.txt находится на диске C, в папке Media, которая расположена в директории Thecode. Последний элемент – это корень.

Разница с UNIX

В MacOS, как и в любой UNIX-системе все диски – это тоже папки. Это значит, что по умолчанию все новые диски будут подключаться как папки внутри папки /Volumes.

Понятие полного пути к файлу в Windows раскрыто. Это «маршрут», в начале которого указывается диск, на котором расположен объект. В случае с MacOS и Linux не только отсутствуют диски, но и используются измененные разделительные знаки. А именно – знаком «/».

Больше разницы между Windows и UNIX-системами нет. Абсолютный путь к директории означает написание всего «маршрута», по которому должен пройти клиент для обнаружения «архива». Относительный – его «уменьшенная» вариация.

Что лучше использовать

Абсолютный и относительный путь к каталогу (или иному объекту системы) – означает почти одно и то же. Первый вариант отвечает за определение полного «маршрута» до документа, второй – ее «урезанную» интерпретацию.

Перед тем как программировать или работать в операционной системе, встает вопрос о том, какую форму представления использовать.

При программировании и разработке используется относительный вариант. Связано это с тем, что находить документы и директории тут не сложно – они расположены в корневой папке проекта.

Для системного администрирования и получения доступа к тем или иным объектам ОС, рекомендуется использовать полный путь. Он более информативный. Это значит, что компьютеру или пользователю предстоит сделать все «шаги», предусматриваемые «маршрутом», для получения доступа к объекту.

Принцип использования того или иного «адреса» прост:

  • работа в интернете с чужими документами – абсолютный вариант;
  • оперирование собственными объектами проекта – относительный.

Теперь выясним, как по имени файла провести определение пути к файлу, а также скопировать соответствующий «адрес».

Как определить и скопировать маршрут

Существуют различные методы реализации. Для того, чтобы просмотреть полный путь файла, а затем перенести его в буфер обмена устройства, можно использовать системные возможности и «горячие клавиши». Все варианты достаточно просты в освоении.

Через Shift

Первый прием показывает, как копировать в буфер обмена «адрес» документа или директории без его непосредственной демонстрации:

  1. Выбрать файл, который хочется использовать.
  2. Нажать на Shift на клавиатуре и кликнуть ПКМ по документу.
  3. Выбрать «Скопировать как путь».

Теперь можно пользоваться соответствующей информацией по собственному усмотрению.

Свойства

Понятие полного пути к файлам раскрыто. Посмотреть его в Windows можно через «Свойства» объекта. Там найдете не только местоположение файла/директории, но и иную важную информацию вроде объема и расширения.

Чтобы воспользоваться этим приемом, нужно:

  1. Найти документ на устройстве.
  2. Нажать ПКМ по нему.
  3. Выбрать параметр «Свойства».
  4. Открыть вкладку «Общие».

Теперь в разделе «Расположение» можно увидеть путь к соответствующему файлу вместе с именем файла. Остается выделить значение строчки «Адрес» и скопировать его. Пример – при помощи ctrl + c.

Командная строка

Командная строка Windows позволяет отследить путь из корневого каталога до желаемого объекта с самого начала. Выводит информацию в консоли:

  1. Открыть командную строку.
  2. Перетащить иконку документа в основное окно приложения «Командная строка».
  3. Посмотреть на результат.

В консоли появится путь к желаемому файлу вместе с именем файла, а также всеми папками, которые нужно открыть для поиска соответствующего элемента.

В MacOS

Для MacOS уточнение расположения документов/директорий проводится точно так же, как и в Windows – при помощи Shift. Здесь предстоит найти тот или иной файл в Finder, а затем, удерживая клавишу Option, зажать ПКМ. Теперь остается выбрать команду «Скопировать путь до…».

Хотите освоить современную IT-специальность? Огромный выбор курсов по востребованным IT-направлениям есть в Otus!

Таблица файловой системы диска, которая
содержит список всех записанных на этот
диск файлов. Для каждого файла в этой
таблице указываются значения всех
атрибутов, а также номер первого
выделенного файлу кластера

Файловая система — это то, на чем
держится далеко неидеальный, но
маломальский порядок на наших жестких
дисках. Носители информации способны
лишь хранить, записывать или считывать
биты данных из определенных секторов,
а за доступ к информации отвечает именно
файловая система. Этому термину можно
дать несколько определений, каждое из
которых верно. Файловая система —
это система организации и хранения
информации на жестком диске или других
носителях, программные алгоритмы
операционной системы для управления
данной системой организации информации,
и, наконец, на бытовом уровне это
совокупность всех файлов и папок на
диске.

Путь к файлу
Операционная система
осуществляет поиск файла в каталоге по
его полному имени. Это означает, что в
одном каталоге или подкаталоге в принципе
не могут находиться два различных файла
с одним и тем же полным именем. Напоминаем,
что полное имя состоит из названия файла
и его расширения. Не допускается также
и наличие в одном каталоге или подкаталоге
двух вложенных подкаталогов с одинаковыми
именами.

Цепочка названий подкаталогов, по
которым нужно пройти, начиная от корневого
каталога и заканчивая подкаталогом,
содержащим файл, называется путем или
маршрутом к файлу.
ПРИМЕЧАНИЕ 
В
операционных системах MS DOS и Windows корневой
каталог в пути указывается символом .
Этим же символом отделяются друг от
друга названия подкаталогов в цепочке,
а также имя файла от названия подкаталога,
в котором он находится.
Таким образом,
для файлов, находящихся в корневом
каталоге (рис. 6.2), путем является только
обозначение корневого каталога , и
файлы указываются следующим
образом:
command.com , config.sys , autoexec.bat 

Соседние файлы в папке informatika

  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #

Путь к файлу

Операционная система осуществляет поиск файла в каталоге по его полному имени. Это означает, что в одном каталоге или подкаталоге в принципе не могут находиться два различных файла с одним и тем же именем. Напоминаем, что имя состоит из названия файла и его расширения. Не допускается также и наличие в одном каталоге или подкаталоге двух вложенных подкаталогов с одинаковыми именами.

В каталогах или подкаталогах допускается наличие файлов или дочерних подкаталогов с совпадающими именами. Но тогда для однозначного указания на нужный файл имени файла недостаточно. Для того чтобы отличить файлы с одним и тем же названием, необходимо указывать еще и подкаталоги, в которых они находятся. А в общем случае требуется указывать не один подкаталог, а всю цепочку подкаталогов, по которым необходимо пройти от корневого каталога до подкаталога, содержащего искомый файл, чтобы добраться до нужного файла и определить его местоположение.

Цепочка названий подкаталогов, по которым нужно пройти, начиная от корневого каталога и заканчивая подкаталогом, содержащим файл, называется путем или маршрутом к файлу.

В операционных системах MS DOS и Windows корневой каталог в пути указывается символом . Этим же символом отделяются друг от друга названия подкаталогов в цепочке, а также имя файла от названия подкаталога, в котором он находится. Этот символ называется back slash — обратный слэш.

Таким образом, для файлов, находящихся в корневом каталоге (см. рис. 3.3), путем является только обозначение корневого каталога , и файлы указываются следующим образом:

Файл из подкаталога user1 имеет путь user1:

А путь к файлам из подкаталога kontakti должен включать названия обоих подкаталогов — user1kontakti:

Пути могут указываться не только к файлам, но и подкаталогам. Так, для подкаталога kontakti путем является user1.

Так как в состав компьютера входит несколько различных дисковых устройств, для однозначного определения файла необходимо указать, на каком именно устройстве он находится. Это можно сделать, задавая название дискового устройства, содержащего файл. Название устройства принято размещать перед путем к файлу. Полное имя файла (спецификация файла) содержит

ь название устройства,

<имя носителя><имя каталога1>. <имя каталогаN><собственное имя файла>.

Если, например, каталог, структура которого приведена на рис. 3.3, находится на жестком диске С:, то полная спецификация файла postavki.txt имеет вид:

Если этот каталог находится на гибком диске, то есть на дисковом устройстве А:, то спецификация запишется следующим образом:

Полная спецификация файла полностью и однозначно определяет нужный файл, что и требуется операционной системе для того, чтобы точно выполнять команды пользователя. Если же в записи спецификации файла будет сделана малейшая ошибка, скажем, пропущен или искажен хотя бы один символ, операционная система найти такой файл не сможет.

Установите соответствие между программой и ее назначением Photoshop < графический редактор

Как быстро выучить стихотворение наизусть? Запоминание стихов является стандартным заданием во многих школах.

Как научится читать по диагонали? Скорость чтения зависит от скорости восприятия каждого отдельного слова в тексте.

Как быстро и эффективно исправить почерк? Люди часто предполагают, что каллиграфия и почерк являются синонимами, но это не так.

Как научится говорить грамотно и правильно? Общение на хорошем, уверенном и естественном русском языке является достижимой целью.

Цепочка названий подкаталогов по которым нужно пройти начиная от корневого каталога и заканчивая

Тема: Файловая система.

Что нужно знать:

· данные на дисках хранятся в виде файлов (наборов данных, имеющих имя)

· чтобы было удобнее разбираться с множеством файлов, их объединяют в каталоги (в Windows каталоги называются «папками»)

· каталог можно воспринимать как контейнер, в котором размещаются файлы и другие каталоги, которые называются подкаталогами или вложенными каталогами (они находятся внутри другого каталога, вложены в него)

· каталоги организованы в многоуровневую (иерархическую) структуру, которая называется «деревом каталогов»

· главный каталог диска (который пользователь видит, «открыв» диск, например, в Проводнике Windows или аналогичной программе) называется корневым каталогом или «корнем» диска, он обозначается буквой логического диска, за которой следует двоеточие и знак «» (обратный слэш [1] ); например, A : – это обозначение корневого каталога диска А

· каждый каталог (кроме корневого) имеет (один единственный!) «родительский» каталог – этот тот каталог, внутри которого находится данный каталог

· полный адрес каталога – это перечисление каталогов, в которые нужно войти, чтобы попасть в этот каталог (начиная с корневого каталога диска); например
С: USER BIN SCHOOL

· полный адрес файла состоит из адреса каталога, в котором он находится, символа «» и имени файла, например
С: USER BIN SCHOOL Вася. txt

· маска служит для обозначения (выделения) группы файлов, имена которых имеют общие свойства, например, общее расширение

· в масках, кроме «обычных» символов (допустимых в именах файлов) используются два специальных символа: звездочка «*» и знак вопроса «?»;

· звездочка «*» обозначает любой количество любых символов, в том числе, может обозначать пустую последовательность;

· знак вопроса «?» обозначает ровно один любой символ

· при выводе списка имен файлов они могут быть отсортированы по имени, типу (расширению), дате последнего изменения, размеру; это не меняет их размещения на диске;

· если установлена сортировка по имени или типу, сравнение идет по кодам символов, входящих в имя или в расширение

Пример задания:

Определите, какое из указанных имен файлов удовлетворяет маске: ?hel*lo.c?*

1) hello.c 2) hello.cpp 3) hhelolo.cpp 4) hhelolo.c

1) будем проверять соответствие файлов маске по частям, записывая результаты в таблицу

2) начнем с первой части маски, « ?hel »; эта часть означает, что перед сочетанием « hel » в начале имени стоит один любой символ;

3) сразу видим, что первые два имени не подходят (начинаются прямо с « hel », без стартового символа), отмечаем их крестиком в таблице и больше не рассматриваем:

h hel olo.cpp

h hel olo.c

желтым и фиолетовым маркером в таблице выделены соответствующие части маски и имен файлов (где есть совпадение)

4) для двух последних имен проверяем второй блок маски: после « hel » должна быть цепочка « lo . c », или вплотную (и это возможно!) или через произвольную «вставку», на которую указывает звездочка в маске; видим, что оба имени прошли проверку:

hhel o lo.c pp

5) последняя часть маски, « ?* », означает, что после « lo . c » должен стоять по крайне мере один любой символ (на это указывает знак «?»); проверяя это правило, обнаруживаем, что для последнего имени, « hhelolo . c », маска не подходит, поскольку после « lo . c » ни одного символа нет:

? hel * lo . c

hello . cp

hello . cpp

hhelolo . cpp

hhelolo . cpp

hhelolo . cpp

h hel o lo.c p p

hhelolo . c

hhelolo . c

6) таким образом, правильный ответ – 3.

Возможные ловушки и проблемы :

· можно забыть, что звездочка «*» может соответствовать и пустой последовательности; например, в рассмотренной задаче имя « hhelolo . cp » также соответствует маске

· можно забыть, что знак «?» НЕ может соответствовать пустой последовательности, а заменяет ровно 1 символ

Еще пример задания:

Перемещаясь из одного каталога в другой, пользователь последовательно посетил каталоги DOC , USER , SCHOOL , A: , LETTER , INBOX . При каждом перемещении пользователь либо спускался в каталог на уровень ниже, либо поднимался на уровень выше. Каково полное имя каталога, из которого начал перемещение пользователь?

2) A:LETTERINBOX

3) А :SCHOOLUSERDOC

4) А :DOCUSERSCHOOL

1) сразу отметим, что здесь предполагается, что пользователь не переходил на другой диск;

2) в задачах, где нужно определить полный адрес файла или каталога, нужно начинать с поиска имени диска, в данном случае каталог находится на диске A: (так обозначается корневой каталог)

3) поскольку в списке посещенных каталогов перед A: стоит SCHOOL , пользователь мог попасть в корень диска A: только через каталог SCHOOL , поэтому адрес стартового каталога начинается с A : SCHOOL

4) так как среди предложенных вариантов только один удовлетворяет этому условию, можно остановиться (правильный ответ – 3), однако, давайте все же доведем процедуру до конца, это позволит выяснить некоторые интересные моменты, которые не сработали здесь, но могут сработать в других задачах

5) как пользователь попал в каталог SCHOOL ? по условию он мог как подниматься, так и спускаться по дереву каталогов

6) явно он не мог спуститься из USER в SCHOOL , потому что SCHOOL находится в корневом каталоге и каждый каталог имеет только одного «родителя»; значит, пользователь поднялся из USER в SCHOOL , и начальная часть полного адреса А: SCHOOL USER

7) аналогично можно доказать, что пользователь поднялся в каталог USER из каталога DOC

8) таким образом, мы доказали, что правильный ответ – 3.

Возможные ловушки и проблемы :

· можно забыть, что названия каталогов в полном имени перечисляются в порядке входа в них, начиная от корневого; пользователь выходил из каталогов, поднимаясь к корню диска A: , поэтому проходил каталоги в обратном порядке (на эту ошибку рассчитан неверный ответ А: DOC USER SCHOOL )

· можно перепутать каталог, из которого вышел пользователь, и каталог, где он в конечном счете оказался (на эту ошибку рассчитан неверный ответ А: LETTER INBOX )

· в условии есть лишние данные, которые только запутывают дело; например, имена каталогов LETTER , INBOX никак не влияют на ответ, потому что пользователь попал в них уже после выхода в корневой каталог диска A: , то есть, пройдя весь путь исходного каталога в обратном порядке

Еще пример задания:

Каталог содержит файлы с именами

б) q q .cpp

в) q q .c

д) q aa .c md

е) q12. cpp

Определите, в каком порядке будут показаны файлы, если выбрана сортировка по типу (по возрастанию).

1) авгдбе 2) авгдеб 3) абвгде 4) авдбег

1) при сортировке по типу сравниваются расширения имен файлов

2) при сравнении используют коды символов

3) отсутствие символа (когда расширение закончилось) считается «меньше» любого символа, то есть, файл с расширением будет находиться в списке выше, чем файлы с расширениями . c 1 и . cmd

4) коды цифр размещаются в таблице символов раньше, чем коды букв, то есть, файл с расширением .с1 будет находиться в списке выше, чем файл с расширением .сmd

5) теперь можно распределить имена файлов по расширениям

в) q q .c

д) q aa .c md

б) q q .cpp

е) q12. cpp

6) осталась еще одна проблема – решить, что делать, если расширения совпадают; в этом случае в большинстве программ для определенности используется дополнительная сортировка по имени, поэтому файл с именем q12.cpp будет стоять в списке выше, чем файл q q .cpp (код цифры ‘1′ меньше, чем код буквы ‘ q ’)

7) в итоге получаем

в) q q .c

д) q aa .c md

е) q12. cpp

б) q q .cpp

8) таким образом, мы доказали, что правильный ответ – 2.

Возможные ловушки и проблемы :

· можно забыть правильно расставить имена файлов с одинаковыми расширениями (неверный ответ 1)

· нельзя сравнивать числовые значения: например, интуитивно кажется, что файл с расширением .c10 «больше», чем файл с расширением .c2 , однако это неверно, потому что код цифры ‘2’ больше, чем код цифры ‘1’; поэтому файл с расширением .c10 будет стоять в списке выше файла с расширением .c2 (при сортировке по типу в порядке возрастания)

· можно забыть, что отсутствие кода (имя или расширение закончилось) «меньше» любого кода

· можно забыть, что коды цифр меньше, чем коды букв

· очень легко по невнимательности выбрать не тот ответ

Еще пример задания:

Для групповых операций с файлами используются маски имен файлов. Маска представляет собой последовательность букв, цифр и прочих допустимых в именах файлов символов, в которых также могут встречаться следующие символы: Символ «?» (вопросительный знак) означает ровно один произвольный символ. Символ «*» (звездочка) означает любую последовательность символов произвольной длины, в том числе «*» может задавать и пустую последовательность. Определите, по какой из масок будет выбрана указанная группа файлов:

1) рассмотрим первую маску *23*.? x * : она требует, чтобы в имени файла были стоящие подряд цифры 23 (это есть у всех заданных файлов) и в расширении слева от буквы « x » был один обязательный символ (ни одно имя файла не подходит); поэтому вариант 1 неверный

2) рассмотрим вторую маску ?23?. x ?? : она требует, чтобы в имени файла слева и справа от цифр 23 стояло по одному символу (подходит только для первого имени файла, для остальных не подходит); поэтому вариант 2 неверный

3) рассмотрим третью маску ?23?. x * : она не подходит по тем же причинам, что и вариант 2

4) рассмотрим последнюю маску *23*. : она требует, чтобы в имени файла были стоящие подряд цифры 23 (это есть у всех заданных файлов) и в расширении было ровно три обязательных символа (это тоже верно для всех имен файлов); поэтому вариант 4 верный

5) таким образом, мы доказали, что правильный ответ – 4 .

Еще пример задания:

Для групповых операций с файлами используются маски имен файлов. Маска представляет собой последовательность букв, цифр и прочих допустимых в именах файлов символов, в которых также могут встречаться следующие символы: Символ «?» (вопросительный знак) означает ровно один произвольный символ. Символ «*» (звездочка) означает любую последовательность символов произвольной длины, в том числе «*» может задавать и пустую последовательность.

В каталоге находятся пять файлов:

Определите, по какой из масок будет выбрана указанная группа файлов:

1) авторы привели список файлов в каталоге, что наводит на мысль о каком-то подвохе, и он действительно есть

2) сформулируем правила, соответствующие каждой маске:

1. в имени файла есть буква «о», за которой следует еще хотя бы один символ; расширение начинается с буквы « d », за которой следует не менее 1 символа

2. в имени файла есть буква «о», перед ней стоит один символ, а за ней следует еще хотя бы один символ; расширение начинается с буквы « d »

3. в имени файла есть «or», расширение из 4-х символов, начинается с « doc »

4. в имени файла 4 символа, причем в середине – «or»; расширение из 4-х символов, начинается с « doc »

3) анализируя маску 1, с удивлением обнаруживаем, что под нее подходят ВСЕ исходные файлы, находящиеся в каталоге, поэтому этот ответ неверный

4) маске 2 соответствуют только нужные нам 4 файла, файл orsk.dat отсекается, потому что в маске перед «о» должен быть еще один символ; скорее всего, это и есть правильный ответ

5) маски 3 и 4 не соответствуют последним двум файлам, у которых расширение doc состоит из трех символов, поэтому это неверные варианты

6) таким образом, мы доказали, что правильный ответ – 2 .

[1] Для разделения имен каталогов в адресе в разных операционных системах применяют прямой слэш «/» или обратный слэш «». В системе Windows , которая наиболее распространена в России, стандартным разделителем считается «», именно такой знак чаще всего используется в задачах ЕГЭ.

3 способа скопировать путь к файлу или папке

На чтение 5 мин Просмотров 9.2к. Опубликовано 18.01.2021 Обновлено 31.03.2021

Оглавление

  1. Как посмотреть путь к файлу?
  2. С помощью Shift
  3. Через свойства папки или файла
  4. Узнаем путь к файлу в командной строке Windows
  5. Как скопировать путь к файлу на Mac
  6. Абсолютный и относительный пути

В этой инструкции я покажу, как скопировать полный путь к файлу в Windows 10. Иногда нам для поиска информации или работы других программ, необходимо скопировать путь расположения файла, папки или каталога. Чтобы найти определенный файл в иерархии каталогов, необходимо указать абсолютный путь к нему.

Как посмотреть путь к файлу?

Существует несколько способов просмотра и копирования пути к файлам и папкам. Самый простой из них, это использовать клавишу “Shift” ⇒

С помощью Shift

  • выбираем папку или файл, до которого вам нужно скопировать путь;
  • зажимаем “Shift” и кликаем правой кнопкой мыши по иконке выбранного файла;
  • в появившемся меню жмем по пункту “Копировать как путь”;
  • путь скопирован в буфер обмена и теперь его можно вставлять куда вам требуется.

Например, путь к рабочему столу Windows 10 на моем компьютере имеет вид ⇒ C:UsersAlexDesktop, а к папке Temp ⇒ C:Program Files (x86)Temp

Через свойства папки или файла

Следующим способом удобно смотреть расположение папки или документа, но скопировать весь путь не получиться, так как последняя директория в пути не указывается.

  1. Нажмите правой кнопкой мыши на папку и откройте ее “Свойства”.
  2. У вас появиться вкладка “Общие” в которой есть пункт “Расположение”. В нем прописан весь абсолютный путь до вашей папки, но без ее имени. Можно сохранить и без него, но для полного пути все равно придется копировать и имя нужного файла, что не очень удобно.

Например путь к графическому изображению help.png вместо ⇒

E:Фотоматериалы и изображенияИконкиhelp.png

будет выглядеть как ⇒

E:Фотоматериалы и изображенияИконки

Узнаем путь к файлу в командной строке Windows

  1. Открываем командную строку. Сделать это можно, нажав комбинацию клавиш Win+R и в открывшейся строке ввести cmd.
  2. Перетаскиваем иконку файла или папки в основное окно программы cmd.exe.
  3. Полный путь до файла будет скопирован в окно командной строки. Если это будет файл запуска, например exe, то при нажатии кнопки Ввод (Enter) запуститься программа.

Для примера создадим документ Word с именем Doc3 и поместим его в любую папку и посмотрим его путь в командной строке.

Путь до документа Doc3 в командной строке

Как скопировать путь к файлу на Mac

Пути к файлам и папкам на Маке можно узнать так же, как и в Виндовс через Shift, только названия кнопок другие ⇒

  • открываем в Finder нужную папку или программу;
  • удерживая клавишу Option, жмем по ней правой кнопкой мыши;
  • выбираем пункт “Скопировать путь до имя вашего файла“.

Как посмотреть путь к файлу на mac

В буфер обмена скопируется полный путь к файлу например ⇒

/Users/Games/Skyrim/skyrim.exe

Скопировать полный путь до любого файла достаточно просто и с этим справится любой пользователь ПК или ноутбука.

Абсолютный и относительный пути

Путь (от англ. path) — набор символов, показывающий расположение файла или каталога в файловой системе.

Например, в следующей записи G:EPIM ProНеобходимые программыABBYY FineReader 10.0.102.95 Proreadme.txt

readme.txt — это имя файла, а G:EPIM ProНеобходимые программыABBYY FineReader 10.0.102.95 Pro — путь к нему.

Полный (абсолютный) путь к файлу начинается с логического имени диска. Далее идут имена вложенных друг в друга папок (их может быть сколько угодно много). В последней папке содержится требуемый файл.

Имена дисков и папок записываются через слеш-разделитель. В операционных системах UNIX разделительным знаком при формировании пути является обратный слеш “/”. В Windows — “”. Они служат для разделения названия каталогов, составляющих путь к файлу.

Стандартный путь состоит из трех компонентов ⇒

  1. Буква тома или диска, после которой следует разделитель томов ( “:” двоеточие).
  2. Имя каталога. Символ “” разделителя каталогов служит для разделения подкаталогов в его внутренней иерархии.
  3. Необязательное имя файла. Символ разделителя каталогов служит для разделения пути к файлу и его имени.

Если присутствуют все три компонента, путь является абсолютным. Полный путь всегда начинается с корневого каталога.

Если буква тома или диска не указана и имя каталога начинается с символа разделителя, то такой путь задан относительно корня текущего диска. В противном случае путь задан относительно текущего каталога.

В следующей таблице показаны некоторые возможные пути к каталогам и файлам ⇒

C:UsersAlexAppData – абсолютный путь к файлу из корня диска C.
AlexAppData – относительный путь из подкаталога.

Александр

Александр

В 1998 году — первое знакомство с компьютером. С 2002 года постоянно развиваюсь и изучаю компьютерные технологии и интернет. Сейчас военный пенсионер. Занимаюсь детьми, спортом и этим проектом.

Задать вопрос

( 1 оценка, среднее 5 из 5 )


Путь
— это строка символов
, используемая для уникальной идентификации местоположения в структуре каталогов . Он составлен в соответствии с иерархией дерева каталогов, в которой компоненты, разделенные символом-разделителем, представляют каждый каталог. Символ-разделитель чаще всего представляет собой косую черту («/»), обратную косую черту («») или двоеточие («:»), хотя в некоторых операционных системах может использоваться другой разделитель . Пути широко используются в компьютерных науках для представления взаимосвязей каталог/файл, характерных для современных операционных систем, и необходимы для созданияЕдиные указатели ресурсов (URL). Ресурсы могут быть представлены как абсолютными , так и относительными путями .

История

Multics впервые представила иерархическую файловую систему с каталогами (разделенными символом «>») в середине 1960-х годов. [1]

Примерно в 1970 году Unix представила символ косой черты («/») в качестве разделителя каталогов.

В 1981 году была выпущена первая версия Microsoft DOS . MS-DOS 1.0 не поддерживал файловые каталоги. Кроме того, большая часть служебных команд, упакованных с MS-DOS 1.0, была получена от IBM , и в их синтаксисе командной строки в качестве префикса «переключателя» использовался символ косой черты. Например, dir /wзапускает dirкоманду с параметром формата широкого списка.

Такое использование косой черты все еще можно найти в командном интерфейсе Microsoft Windows . Напротив, Unix использует символ тире («-«) в качестве префикса переключателя командной строки.

Когда поддержка каталогов была добавлена ​​​​в MS-DOS в версии 2.0, «/» был сохранен в качестве символа префикса переключателя для обратной совместимости. Microsoft выбрала символ обратной косой черты («») в качестве разделителя каталогов, который похож на символ косой черты, хотя более современные версии Windows не зависят от косой черты, что позволяет смешивать оба типа косых черт в пути. [2] [3]

Абсолютные и относительные пути

Абсолютный или полный путь указывает на одно и то же место в файловой системе, независимо от текущего рабочего каталога . Для этого он должен включать корневой каталог .

Напротив, относительный путь начинается с некоторого заданного рабочего каталога, что позволяет избежать необходимости указывать полный абсолютный путь. Имя файла можно рассматривать как относительный путь, основанный на текущем рабочем каталоге. Если рабочий каталог не является родительским каталогом файла , возникнет
ошибка «файл не найден », если к файлу обращаться по его имени.

Представления путей операционной системой и оболочкой

Операционная
система
Оболочка
Корневой
каталог

Разделитель
каталогов
Текущий
каталог
Родительский
каталог
Домашний
каталог
Примеры
Unix-подобная ОС
(включая macOS )
Unix-оболочка / / . .. ~ /home/user/docs/Letter.txt
./inthisdir
../../greatgrandparent
~/.rcinfo
ДОС COMMAND.COM [drive letter:]или же
\[server name][volume]
. .. C:USERDOCSLETTER.TXT
A:PICTURE.JPG
\SERVER01USERDOCSLETTER.TXT
ОС/2 cmd.exe [drive letter:]или же
\[server name][volume]
/или же . .. C:userdocsLetter.txt
A:Picture.jpg
\SERVER01USERdocsLetter.txt
Microsoft
Windows
cmd.exe (относительно текущего корня рабочего каталога)
или [drive_letter]:
или или или  или [4]\[server][sharename]
\?[drive_spec]:
\?UNC[server][sharename]
\.[physical_device]
/или ,

Японская версия использует ¥ , корейская версия использует ₩ в качестве разделителя пути
.

. ..[5] C:userdocsLetter.txt
/user/docs/Letter.txt
C:Letter.txt
\Server01userdocsLetter.txt
\?UNCServer01userdocsLetter.txt
\?C:userdocsLetter.txt
C:userdocssomefile.ext:alternate stream name
./inthisdir
../../greatgrandparent
Windows PowerShell [drive letter:]/или [drive name:]или или
\[server name]

[PSSnapIn name][PSProvider name:][:PSDrive root]

/или же . .. ~ C:userdocsLetter.txt
C:user/docsLetter.txt
\Server01userdocsLetter.txt
cd ~Desktop

UserDocs:/Letter.txt
Variable:PSVersionTable
Registry::HKEY_LOCAL_MACHINESOFTWARE
Microsoft.PowerShell.SecurityCertificate::CurrentUser

ТОПС-20 ДКЛ [device name:] . PS:<USER.DOCS>LETTER.TXT,4
РСХ-11 MCR [device name:] DR0:[30,12]LETTER.TXT;4
ОпенВМС ДКЛ [device name:][000000]или же

[NODE["accountname password"]]::[device name][000000]:

. [] [-] SYS$LOGIN: SYS$SYSDEVICE:[USER.DOCS]PHOTO.JPG

[]IN_THIS_DIR.COM;
[-.-]GreatGrandParent.TXT
SYS$SYSDEVICE:[.DRAFTS]LETTER.TXT;4
GEIN::[000000]LETTER.TXT;4
SYS$LOGIN:LOGIN.COM

Классическая
Mac OS
[volume or drive name]: : : :: Macintosh HD:Documents:Letter
:fileincurrentdir
::fileinparent
:::fileingrandparent
ProDOS AppleSoft BASIC
/[volume or drive name]/ / /SCHOOL.DISK/APPLEWORKS/MY.REPORT

FLIGHT.SIMULATOR,D2

АмигаОС Amiga CLI/
AmigaShell
[drive, volume, device or assign name]: / ""
(пустой строки)
/ Workbench:Utilities/MultiView
DF0:S/Startup-Sequence
S:Startup-Sequence
TCP:en.wikipedia.com/80
ОС RISC ShellCLI
[fs type[#option]:][:drive number or disc name.]$

примечание: &, % и @ также могут использоваться для ссылки на корень
текущего пользователя, библиотеку и текущий (рабочий) каталог соответственно.

. @ ^ & ADFS::MyDrive.$.Documents.Letter
Net#MainServer::DataDrive.$.Main.sy10823
LanMan::WindowsC.$.Pictures.Japan/gif
NFS:&.!Choices
ADFS:%.IfThere
@.inthisdir
^.^.greatgrandparent

Когда монтируются файловые системы с расширениями имен файлов,
‘.’ символы заменяются на ‘/’, как в приведенном выше примере Japan/gif.

Симбиан ОС Файловый менеджер
userdocsLetter.txt
Домен/ОС Оболочка

//(корень домена)
/(корень текущего узла)

/ . ~ //node/home/user/docs/Letter.txt
./inthisdir
\greatgrandparent
~rcinfo
MenuetOS CMD
/ /
Стратус ВОС
Интерпретатор
командной строки VOS
%[system_name]#[module_name]> > < %sysname#module1>SubDir>AnotherDir
Непрерывное
ядро
Расширенный командный язык
TACL

Tandem
Нет корня
. нет родительского
каталога
NODE.$DISK.SUBVOL.FILE
NODE.$DEVICE
NODE.$DEVICE.#SUBDEV.QUALIFIER
КП/М КПК [drive letter:] нет поддержки каталогов, только пользовательские области 0–F
A:LETTER.TXT
ГС/ОС :[volume name]:или .[device name]:или[prefix]:

примечание: префикс может быть числом (0–31), *(загрузочный том) или @(домашний каталог AppleShare)

:или же/ @ :Apps:Platinum.Paint:Platinum.Paint
*:System:Finder
.APPLEDISK3.5B/file

Японские и корейские версии Windows могут часто отображать символ « ¥ » или « » вместо разделителя каталогов. В таких случаях код для обратной косой черты рисуется как эти символы. В самых ранних версиях MS-DOS обратная косая черта была заменена этими глифами на дисплее, чтобы их можно было отображать программами, которые понимают только 7-битный ASCII (другие символы, такие как квадратные скобки, также были заменены, см. ISO 646 , Windows Кодовая страница 932 (японский Shift JIS) и кодовая страница 949 (корейский) ). Хотя даже первая версия Windows поддерживала 8-битный ISO-8859-1 .набор символов, который имеет знак йены в U + 00A5, и современные версии Windows поддерживают Unicode , который имеет знак Won в U + 20A9, многие программы будут продолжать отображать обратную косую черту, найденную в файлах ASCII, таким образом, чтобы сохранить обратную совместимость. [6]

Mac OS X , производная от UNIX, внутри использует пути UNIX. Однако, чтобы сохранить совместимость с программным обеспечением и удобство для пользователей, многие части графического интерфейса переключают «/», введенное пользователем, на «:» внутри и переключают их обратно при отображении имен файлов (знак «:», введенный пользователем, также изменяется). в «/», но обратного перевода не происходит).

Пути в языках программирования

Языки программирования также используют пути. Например: при открытии файла. Большинство языков программирования используют представление пути базовой операционной системы:

 uxFile = fopen("project/readme.txt", "r")
 winFile = fopen("C:\Program Files\bin\config.bat", "r")

Этот прямой доступ к путям операционной системы может препятствовать переносимости программ. Для поддержки переносимых программ Java использует File.separator , чтобы различать пути, разделенные / и . В Seed7 используется другой подход к представлению пути. В Seed7 все пути используют соглашение о путях Unix, независимо от операционной системы. Под окнами происходит сопоставление (например: путь /c/users сопоставляется с c:users ).

Универсальное соглашение об именах


Microsoft Windows
UNC , сокращение от Universal Naming Convention или Uniform Naming Convention , определяет общий синтаксис для описания расположения сетевого ресурса, такого как общий файл, каталог или принтер. Синтаксис UNC для систем Windows имеет общую форму:

\имя_компьютераобщая_папкаресурс

Microsoft часто называет это « сетевым путем ».

Некоторые интерфейсы Microsoft Windows также разрешают или требуют синтаксис UNC для доступа к общему ресурсу WebDAV , а не URL-адрес. Синтаксис UNC расширен [7] дополнительными компонентами для обозначения использования SSL и номера порта TCP/IP, URL-адрес WebDAV http[s]://HostName[:Port]/SharedFolder/Resourceстановится

\HostName[@SSL][@Port]SharedFolderResource

При удаленном просмотре «SharedFolder» может иметь имя, отличное от того, которое программа на сервере видит при открытии «SharedFolder». Вместо этого имя SharedFolder состоит из произвольного имени, присвоенного папке при определении ее «общего доступа».

Некоторые интерфейсы Microsoft Windows также принимают «длинное UNC»:

\?UNCИмяКомпьютераОбщаяПапкаРесурс

Microsoft Windows использует следующие типы путей:

  • локальная файловая система (LFS), напримерC:File
  • универсальное соглашение об именах (UNC), например \ServerVolumeFileили / <internet resource name>[Directory name](по крайней мере, в Windows 7 и более поздних версиях)
  • «длинный» путь к устройству, такой как \?C:Fileили \?UNCServerVolumeFile. [8] Этот путь указывает на локальное пространство имен файлов и \.аналогичен тому, который указывает на локальное пространство имен устройств DOS. Этот формат также является «необработанным» или «неинтерпретируемым» путем, поскольку он отправляет пути прямо в файловую систему без преобразования / в и интерпретации таких имен, как .. . [9]
  • \??Пути с префиксом диспетчера объектов Windows NT (глобальное пространство имен DOS). [10] [11]

В версиях Windows до Windows XP только API-интерфейсы, которые принимают «длинные» пути к устройствам, могли принимать более 260 символов.

Оболочка explorer.exe в Windows XP и Windows Vista допускает длину пути до 248 символов. [ нужна ссылка ]

Поскольку символы UNC начинаются с двух обратных косых черт, а обратная косая черта также используется для экранирования строк и в регулярных выражениях , это может привести к крайним случаям синдрома наклонной зубочистки : экранированная строка для регулярного выражения, совпадающего с UNC, начинается с 8 обратных косых черт — \\\\— потому что строка и регулярное выражение требуют экранирования. Это можно упростить, используя необработанные строки , как в C# @"\\"или Python r'\\', или литералы регулярных выражений, как в Perl qr{\\}.

Определение пути POSIX

Большинство Unix-подобных систем используют аналогичный синтаксис. [12]
POSIX позволяет обрабатывать путь, начинающийся с двух косых черт, способом, определяемым реализацией, [13]
хотя в других случаях системы должны обрабатывать несколько косых черт как одиночные косые черты.
[14]
Многие приложения в Unix-подобных системах (например,
scp , rcp и rsync ) используют такие определения ресурсов, как:

имя хоста:/путь к каталогу/ресурс

или схемы URI с именем службы (здесь «smb»):

smb://имя хоста/путь к каталогу/ресурс

Пример

Unix-стиль

В следующем рабочем примере обсуждается поведение файловой системы в стиле Unix , как она выглядит из терминала или терминального приложения (окно командной строки):

Прикреплен к текущему рабочему каталогу (cwd):

/пользователи/отметить/

Кто-то хочет изменить текущий рабочий каталог на:

/пользователи/отметить/bobapples

В этот момент относительный путь для нужного каталога может быть представлен как:

./яблоки

или для краткости:

яблоки

и абсолютный путь к каталогу как:

/пользователи/отметить/bobapples

Учитывая bobapples в качестве относительного пути для нужного каталога, в командной строке можно ввести следующее, чтобы изменить текущий рабочий каталог на bobapples:

компакт -диск

Две точки (» .. «) указывают вверх в иерархии , указывая на родительский каталог ; одна точка (» . «) представляет сам текущий каталог. Оба могут быть компонентами сложного относительного пути (например, « ../mark/./bobapples »), где « . » отдельно или в качестве первого компонента такого относительного пути представляет рабочий каталог . (Использование « ./foo » для ссылки на файл « foo » в текущем рабочем каталоге иногда может с пользой отличить его от ресурса « foo », который находится в каталоге по умолчанию или другими способами; например,вместо установленного в системе.)

Стиль MS-DOS/Microsoft Windows

Вопреки распространенному мнению, системный API Windows принимает косую черту, поэтому все приведенные выше примеры Unix должны работать. Но многие приложения в Windows интерпретируют косую черту для других целей или рассматривают ее как недопустимый символ и, таким образом, требуют ввода обратной косой черты — особенно оболочка cmd.exe (часто называемая «терминалом», поскольку она обычно запускается в окне терминала). Обратите внимание, что многие другие оболочки, доступные для Windows, такие как tcsh и Windows PowerShell , допускают косую черту.

Кроме того, «» указывает не на один корень, а на корень «текущего диска». Указание файла на диске, отличном от текущего, требует префикса буквы диска и двоеточия. Никакой двусмысленности не возникает, потому что двоеточие не является допустимым символом в имени файла MS-DOS, и, следовательно, в текущем каталоге не может быть файла с именем «A:».

Имена UNC (любой путь, начинающийся с \? ) не поддерживают косую черту. [15]

В следующих примерах показаны пути в стиле MS-DOS / Windows с обратной косой чертой, используемой для соответствия наиболее распространенному синтаксису:

A:TempFile.txt

Этот путь указывает на файл с именем File.txt , расположенный в каталоге Temp , который в свою очередь находится в корневом каталоге диска A :.

C:..Файл.txt

Этот путь относится к файлу с именем File.txt, расположенному в родительском каталоге текущего каталога на диске C :.

ПапкаПодпапкаФайл.txt

Этот путь обозначает файл с именем File.txt, расположенный в каталоге SubFolder , который, в свою очередь, находится в каталоге Folder , который находится в текущем каталоге текущего диска (поскольку в этом примере не указана спецификация диска).

Файл.txt

Этот довольно простой путь указывает на файл с именем, File.txtрасположенный в текущем каталоге (поскольку в пути отсутствует спецификация каталога) на текущем диске (поскольку спецификация диска отсутствует).

\.COM1

Этот путь относится к первому последовательному порту ( COM1 ).

C:> больше < C:/Windows/system.ini
; для поддержки 16-битных приложений 
[386Enh] 
woafont = dosapp.fon 
EGA80WOA.FON = EGA80WOA.FON 
EGA40WOA.FON = EGA40WOA.FON 
CGA80WOA.FON = CGA80WOA.FON 
CGA40WOA.FON = CGA40WOA.FON 
...

В этом примере в качестве разделителя каталогов используется путь, содержащий косую черту. Команда перенаправляет содержимое файла на moreкоманду.

E:> dir  "/Folder/SubFolder/" /Q
 Том на диске E - 
серийный номер тома данных 07BE-0B10

Каталог E:FolderSubFolder

18 октября 2008 г. 08:15 <КАТАЛОГ> ДОМЕНпользователь .
18 октября 2008 г. 08:15 <КАТАЛОГ> ДОМЕНпользователь ..
 18 октября 2008 г. 08:15 <КАТАЛОГ> ДОМЕНпользователь File.txt
                1 файл(ы) 8 байт 
               2 каталог(и) 19 063 000 байт свободно

Путь, содержащий косую черту, часто необходимо заключать в двойные кавычки, чтобы отличить его от ключей командной строки .

  • примечание: компакт-диск не работает таким образом:

CD «[буква диска]:/Program Files» будет работать только из корневого каталога ([буква диска]:). Похоже, что все косые черты рассматриваются так же, как .. [ нужна ссылка ]

  • исключение: используйте переключатель /D для изменения текущего диска в дополнение к изменению текущего каталога для диска.

Например:

компакт-диск "C:.Program Files"

работает так же, как

компакт-диск "C:/Program Files"

Также из корневой папки:

Компакт-диск "C:.Program Files.Internet Explorer"

будут относиться так же, как

компакт-диск "C:/Program Files/Internet Explorer"

Если нет относительного пути к имени каталога, указанному с косой чертой, вы получите следующую ошибку:

Система не может найти указанный путь.

Для установки переменных среды иногда необходимо указать путь, который не содержит пробелов, например, %JAVA_HOME%определенный как «C:Program FilesJava…», может привести к остановке сценариев, когда они сталкиваются с пробелом в пути. имя. Чтобы получить восьмизначное имя, которое Windows присваивает любому каталогу для замены в переменных среды, используйте команду списка каталогов с параметром /x на один уровень выше целевого каталога. Например, следующее даст вам восьмисимвольное имя для всех каталогов непосредственно под корнем:

Смотрите также

  • Имя файла
  • Базовое имя
  • Файл устройства
  • Имя
  • Распределенная файловая система (DFS)
  • Имя файла
  • Стандарт иерархии файловой системы (FHS)
  • Полное имя файла
  • ПУТЬ (переменная)
  • Единый указатель ресурсов (URL)

Ссылки

  1. ^ Дейли, Р.К.; Нойманн, П. Г. (1965). «Файловая система общего назначения для вторичного хранилища». AFIPS Материалы совместной компьютерной конференции . Часть I: 213–229. дои : 10.1145/1463891.1463915 . S2CID  16236414 .
  2. ^ «Почему Windows использует обратную косую черту, а все остальное использует прямую косую черту» .
  3. ^ «Почему символ пути DOS .
  4. ^ Именование файлов, путей и пространств имен
  5. ^ «компакт-диск» . Команды Windows: Windows Server. Документы Майкрософт . Проверено 14 июля 2019 г. .
  6. ^ Разбираемся во всем : когда обратная косая черта не является обратной косой чертой?
  7. ^ «Функция DavGetHTTPFromUNCPath» . WebDAV: Windows. Документы Майкрософт . серия . Проверено 14 июля 2019 г. .
  8. ^ «Форматы путей к файлам в системах Windows» . Файловый и потоковый ввод-вывод: .NET. Документы Майкрософт . Проверено 14 июля 2019 г. .
  9. ^ «Именование файлов, путей и пространств имен — приложения Win32» . docs.microsoft.com .
  10. ^ «winapi — есть ли разница между путями ?? и \??» . Переполнение стека .
  11. ^ «Префиксы пути ?? и \?» . Переполнение стека .
  12. ^ Определение UNC от ComputerLanguage.com
  13. ^ Спецификация разрешения пути POSIX
  14. ^ Определение пути POSIX
  15. ^ «Именование файлов, путей и пространств имен» . Локальные файловые системы: Windows. Документы Майкрософт . Проверено 14 июля 2019 г. .

Внешние ссылки

  • Определение пути — Информационный проект Linux (LINFO)
  • Именование файлов, путей и пространств имен — локальные файловые системы: Windows: Microsoft Docs

Путь к указанному файлу состоит из одного или нескольких компонентов, разделенных специальным символом (обратной косой чертой), причем каждый компонент обычно является именем каталога или именем файла, но с некоторыми заметными исключениями, описанными ниже. Это часто имеет решающее значение для интерпретации системы пути: как выглядит начало или префикс пути. Этот префикс определяет пространство имен, которое использует путь, и, кроме того, какие специальные символы используются в какой позиции в пути, включая последний символ.

Если компонент пути является именем файла, он должен быть последним компонентом.

Каждый компонент пути также будет ограничен максимальной длиной, указанной для определенной файловой системы. В общем, эти правила делятся на две категории: короткие и длинные. Обратите внимание, что имена каталогов хранятся в файловой системе как особый тип файла, но правила именования для файлов также применяются к именам каталогов. Таким образом, путь — это просто строковое представление иерархии между всеми каталогами, которые существуют для конкретного файла или имени каталога.

Полные и относительные пути

Для функций Windows API, которые управляют файлами, имена файлов часто могут быть относительно текущего каталога, в то время как некоторые API требуют полного пути. Имя файла относится к текущему каталогу, если оно не начинается со следующего:

  • UNC-имя любого формата, которое всегда начинается с двух символов обратной косой черты («\»).
  • Обозначение диска с обратной косой чертой, например » C:»или» d:».
  • Одну обратную косую черту, например, «каталог » или «file.txt» Это также называется абсолютным путем.

Если имя файла начинается только с дискового указателя, но не с обратной косой черты после двоеточия, оно интерпретируется как относительный путь к текущему каталогу на диске с указанной буквой. Обратите внимание, что текущий каталог может быть или не быть корневым каталогом в зависимости от того, на что он был установлен во время последней операции «изменить каталог» на этом диске. Примеры такой формат выглядит следующим образом:

  • «C: tmp.txt » относится к файлу с именем «tmp.txt » в текущем каталоге на диске C.
  • «C:tempdirtmp.txt » относится к файлу в подкаталоге к текущему каталогу на диске C.

Путь также считается относительным, если он содержит «две точки»; то есть два периода вместе в одном компоненте пути. Этот особый спецификатор используется для обозначения каталога над текущим каталогом, иначе известный как «родительский каталог». Примеры такого формата выглядит следующим образом:

  • «.. tmp.txt » указывает на файл с именем tmp.txt, который расположен в родительском каталоге текущего каталога.
  • «…. tmp.txt » указывает на файл, который расположен выше двух каталогов над текущим каталогом.
  • «.. tempdirtmp.txt » указывает файл с именем tmp.txt, который находится в каталоге с именем tempdir в том же каталоге текущего каталога.

Относительные пути могут объединять оба типа примеров, например » C:..tmp.txt «. Это полезно, потому что, хотя система отслеживает текущий диск вместе с текущим каталогом этого диска, она также отслеживает текущие каталоги в каждом из разных букв диска (если ваша система имеет более одного), независимо от того, какой диск обозначается как текущий диск.

Максимальное ограничение длины пути

В API-интерфейсе Windows (с некоторыми исключениями, которые будут обсуждаться в следующих параграфах), есть максимальная длина пути в max_path, которая определяется как 260 символов. Локальный путь структурирован в следующем порядке: буква диска, двоеточие, обратная косая черта, компоненты имени, разделенные обратной косой чертой, и завершающий нулевой символ. Например, максимальный путь на диск D «D:some 256-символьный путь строку

«, где » » представляет собой невидимый символ NULL для текущей кодовой странице системы. (Символы < > используются здесь для наглядности и не могут быть частью допустимой строки пути.)

Функции файлового ввода/вывода в Windows API конвертируют «/» в «» в рамках преобразования имени в НТ-имя типа, за исключением случаев использования «\?» префикса.

В Windows API есть множество функций, которые также имеют версии в формате юникода, чтобы разрешить путь расширенной длины для максимальной общей длины пути 32 767 символов. Этот тип пути состоит из компонентов, разделенных обратными косыми чертами, каждый до значения, возвращаемого в параметре Lpmaximumcomponentlength функции GetVolumeInformation (это значение обычно составляет 255 символов). Чтобы указать путь расширенной длины, используйте»\?» префикс. Например?\» ?D:очень_длинный_путь».

Обратите внимание, что максимальный путь 32 767 символов является приблизительным, потому что»\? «префикс может быть расширен до более длинной строки системой во время выполнения, и это расширение применяется к общей длине.

Этот же префикс также можно использовать с путями, построенными в соответствии с универсальным соглашением об именовании (UNC). Чтобы указать такой путь с помощью UNC, используйте»\? UNC». Например?\» ,UNC-путь серверобщий_ресурс», где «сервер» — имя компьютера и » общий_ресурс » — имя общей папки. Эти префиксы не используются как часть самого пути. Они указывают, что путь должен быть передан системе с минимальным изменением, а это означает, что вы не можете использовать прямые косые черты для представления разделителей пути, или точку для представления текущего каталога, или двойные точки для представления родительского каталога. Так как вы не можете использовать «\? «префикс с относительным путем, относительные пути всегда ограничены в общей сложности числом символов MAX_PATH.

Нет необходимости выполнять какие-либо действия для нормализации юникода в строках путь и имя файла для файла Windows функций API ввода-вывода, поскольку файловая система обрабатывает путь и имена файлов как последовательность значений типа wchar. Любые нормализации, необходимые для вашего приложения должны быть выполнены с учетом этого, внешнего на любые вызовы, связанные с файлом Windows функции API ввода-вывода.

При использовании API для создания каталога указанный путь не может быть таким длинным, что невозможно добавить Имя файла 8.3 (то есть имя каталога не может превышать MAX_PATH минус 12).

Оболочка и файловая система имеют различные требования. Можно создать путь с API Windows, который пользовательский интерфейс оболочки не в состоянии интерпретировать должным образом.

Начиная с Windows 10 версии 1607, ограничения MAX_PATH были удалены из общих Win32 файлов и каталогов функций. Тем не менее необходимо выбрать новое поведение. Рееста позволяет включить или отключить новое поведение длинного пути. Для включения длинных путей установить ключ реестра в

HKLMSYSTEMCurrentControlSetControlFileSystem LongPathsEnabled (Тип: reg_dword).

Значение ключа будет кэшироваться системой (на процесс) после первого вызова файла Win32 или функции каталога .Раздел реестра не будет перезагружен в течение всего срока действия процесса. Для того, чтобы все приложения в системе распознали значение ключа, может потребоваться перезагрузка, потому что некоторые процессы могли начаться до того, как ключ был установлен.

Вы также можете включить новое поведение длинного пути для каждого приложения через манифест:

<application xmlns="urn:schemas-microsoft-com:asm.v3">
    <windowsSettings xmlns:ws2="http://schemas.microsoft.com/SMI/2016/WindowsSettings">
        <ws2:longPathAware>true
    </windowsSettings>
</application>

Эти функции управления каталогами, которые не будут иметь ограничения в max_path если вы включите длинные пути: CreateDirectoryW, CreateDirectoryExW GetCurrentDirectoryW RemoveDirectoryW SetCurrentDirectoryW.


Автор этого материала — я — Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML — то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.

тегистатьи IT, Windows, теория программирования, операционные системы

Понравилась статья? Поделить с друзьями:
  • В ос windows команда вставить недоступна если ответ
  • В ос windows есть сервис восстановление системы что он позволяет восстановить
  • В ос windows в имени файла запрещено использование следующих символов
  • В ос windows в имени нельзя использовать следующие символы
  • В ос windows nt наивысшее значение приоритета потока равно