Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ «БистСмноС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π² срСдС WindowsΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 22

Автор ДТонсон Π₯Π°Ρ€Ρ‚

Атрибуты Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°ΠΌΠΈ

БущСствуСт Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ просмотра ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° с Ρ†Π΅Π»ΡŒΡŽ поиска Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ², ΠΈΠΌΠ΅Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ Π·Π°Π΄Π°Π½Π½ΠΎΠΌΡƒ ΡˆΠ°Π±Π»ΠΎΠ½Ρƒ, ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ с ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ΠΌ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² Ρ„Π°ΠΉΠ»ΠΎΠ². Для выполнСния поиска трСбуСтся дСскриптор поиска (search handle), ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌΡ‹ΠΉ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ FindFirstFile. Для нахоТдСния Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΈΠΌΠ΅Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΡΡŽΡ‚ Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ условиям, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ функция FindNextFile, Π° для прСкращСния поиска β€” функция FindClose. 

HANDLE FindFirstFile(LPCTSTR lpFileName, LPWIN32_FIND_DATA lpffd)

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅: дСскриптор поиска. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ INVALID_HANDLE_VALUE ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° Π½Π΅ΡƒΠ΄Π°Ρ‡Π½ΠΎΠ΅ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

Π’ процСссС поиска ΠΈΠΌΠ΅Π½, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… искомому, функция FindFirstFile провСряСт ΠΈΠΌΠ΅Π½Π° Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ„Π°ΠΉΠ»ΠΎΠ², Π½ΠΎ ΠΈ ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ². Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½Π½ΠΎΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ дСскриптора Ρ‚ΠΈΠΏΠ° HANDLE ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для продолТСния поиска.

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹

lpFileName β€” ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° строку, ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‰ΡƒΡŽ имя ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° ΠΈΠ»ΠΈ ΠΏΠΎΠ»Π½ΠΎΠ΅ имя Ρ„Π°ΠΉΠ»Π°, ΠΏΡ€ΠΈ ΡƒΠΊΠ°Π·Π°Π½ΠΈΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ мСтасимволы (? ΠΈ *). Если Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΈΡ‚ΡŒ поиск ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°, мСтасимволы ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ.

lpffd β€” ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° структуру WIN32_FIND_DATA, которая ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΠΏΠ΅Ρ€Π²ΠΎΠΌ Π½Π°ΠΉΠ΄Π΅Π½Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅ ΠΈΠ»ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ удовлСтворяСт ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΡŽ поиска, Ссли Ρ‚Π°ΠΊΠΎΠ²ΠΎΠΉ Π±Ρ‹Π» Π½Π°ΠΉΠ΄Π΅Π½.

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° WIN32_FIND_DATA опрСдСляСтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ: 

typedef struct_WIN32_FIND_DATA {

 DWORD dwFileAttributes;

 FILETIME ftCreationTime;

 FILETIME ftLastAccessTime;

 FILETIME ftLastWriteTime;

 DWORD nFileSizeHigh;

 DWORD nFileSizeLow;

 DWORD dwReserved0;

 DWORD dwReserved1;

 TCHAR cFileName[MAX_PATH];

 TCHAR cAlternateFileName[14];

 } WIN32_FIND_DATA; 

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ dwFileAttributes ΠΌΠΎΠΆΠ½ΠΎ Ρ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° присутствиС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, описанных ΠΏΡ€ΠΈ рассмотрСнии Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ CreateFile, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π΄Ρ€ΡƒΠ³ΠΈΡ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, FILE_ATTRIBUTE_SPARSE_FILE ΠΈΠ»ΠΈ FILE_ATTRIBUTE_ENCRYTPED, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ΡΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ CreateFile. ОписаниС ΠΌΠ΅Ρ‚ΠΎΠΊ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Ρ‚Ρ€Π΅Ρ… Ρ‚ΠΈΠΏΠΎΠ² (врСмя создания, врСмя послСднСго обращСния ΠΈ врСмя послСднСго измСнСния) ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΎ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ². Названия ΠΏΠΎΠ»Π΅ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Ρ„Π°ΠΉΠ»Π° (nFileSizeHigh ΠΈ nFileSizeLow) говорят сами Π·Π° сСбя. cFileName β€” это Π½Π΅ ΠΏΠΎΠ»Π½ΠΎΠ΅ имя Ρ„Π°ΠΉΠ»Π°, содСрТащСС ΠΏΡƒΡ‚ΡŒ доступа, Π° само имя Ρ„Π°ΠΉΠ»Π°. cAlternateFileName β€” имя Ρ„Π°ΠΉΠ»Π° Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ DOS 8.3 (Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Ρ‚ΠΎΡ‡ΠΊΡƒ); эта информация Ρ€Π΅Π΄ΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ лишь для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠΌ Π±ΡƒΠ΄Π΅Ρ‚ имя Ρ„Π°ΠΉΠ»Π° Π² Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС FAT16.

Π’ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… случаях трСбуСтся ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ с Ρ†Π΅Π»ΡŒΡŽ поиска Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΈΠΌΠ΅Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΡˆΠ°Π±Π»ΠΎΠ½Ρƒ, содСрТащСму мСтасимволы ? ΠΈ *. Для этого слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ дСскриптор поиска, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ ΠΈΠ· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ FindFirstFile, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ содСрТится информация ΠΎΠ± искомом ΠΈΠΌΠ΅Π½ΠΈ, ΠΈ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ FindNextFile. 

BOOL FindNextFile(HANDLE hFindFile, LPWIN32_FIND_DATA lpffd) 

Ѐункция FindNextFile Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ FALSE, Ссли Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Π½Π΅Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ ΠΈΠ»ΠΈ Ссли Π½Π΅ удаСтся Π½Π°ΠΉΡ‚ΠΈ Ρ„Π°ΠΉΠ», ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΡΡŽΡ‰ΠΈΠΉ ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΡŽ поиска, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ послСднСму ΡΠ»ΡƒΡ‡Π°ΡŽ соотвСтствуСт Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ GetLastError, Ρ€Π°Π²Π½ΠΎΠ΅ ERROR_NO_MORE_FILES.

ПослС Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ поиск Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½, дСскриптор поиска Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΊΡ€Ρ‹Ρ‚. Π€ΡƒΠ½ΠΊΡ†ΠΈΡŽ CloseHandle для этой Ρ†Π΅Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ нСльзя. Π­Ρ‚ΠΎ Ρ€Π΅Π΄ΠΊΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΡ ΠΏΡ€Π°Π²ΠΈΠ»Π°, согласно ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ функция CloseHandle ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΠ° ΠΊ дСскрипторам любого Ρ‚ΠΈΠΏΠ°; Π² Π΄Π°Π½Π½ΠΎΠΌ случаС Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ дСскриптора поиска ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΌ способом ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ. ВмСсто этого Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ: 

BOOL FindClose(HANDLE hFindFile) 

Ѐункция GetFileInformationByHandle позволяСт ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ дСскриптор Ρ„Π°ΠΉΠ»Π°. Она Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΏΠΎΠ»Π΅ nNumberOfLinks, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ содСрТится количСство ТСстких ссылок Π½Π° Ρ„Π°ΠΉΠ», установлСнных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ CreateHardLink.

ΠžΠΏΠΈΡΠ°Π½Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ мСтасимволов Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ Π΄Π°ΠΆΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ…, запускаСмых Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки DOS, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ° DOS Π½Π΅ Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅Ρ‚ мСтасимволы. 

ΠŸΠΎΠ»Π½Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²

ПолноС имя Ρ„Π°ΠΉΠ»Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ GetFullPathName. Ѐункция GetShortPathName Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ имя Ρ„Π°ΠΉΠ»Π° Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ DOS 8.3, Π² ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, Ρ‡Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹ΠΉ Ρ‚ΠΎΠΌ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠ΅ ΠΈΠΌΠ΅Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ².

Π’ NT 5.1 Π±Ρ‹Π»Π° Π²Π²Π΅Π΄Π΅Π½Π° функция SetFileShortName, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ сокращСнноС имя Ρ„Π°ΠΉΠ»Π° ΠΈΠ»ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°. Иногда это оказываСтся ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΌ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ интСрпрСтация сокращСнных ΠΈΠΌΠ΅Π½ Ρ„Π°ΠΉΠ»ΠΎΠ² часто Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ затруднСния.

Π”Ρ€ΡƒΠ³ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ опрСдСлСния Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ²

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ FindFirstFile ΠΈ FindNextFile ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, ΡΠ²ΡΠ·Π°Π½Π½ΡƒΡŽ с Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌΠΈ Ρ„Π°ΠΉΠ»Π°: Ρ„Π»Π°Π³ΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ², ΠΌΠ΅Ρ‚ΠΊΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Ρ‚Ρ€Π΅Ρ… Ρ‚ΠΈΠΏΠΎΠ² ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ„Π°ΠΉΠ»Π°. Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ‚Π°ΠΊΠΆΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΎΠ΄Π½Π° ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° для задания Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ², ΠΏΡ€ΠΈΡ‡Π΅ΠΌ эти Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ нСпосрСдствСнно с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌΠΈ дСскрипторами Ρ„Π°ΠΉΠ»ΠΎΠ², Π½Π΅ трСбуя просмотра ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² ΠΈΠ»ΠΈ указания ΠΈΠΌΠ΅Π½ Ρ„Π°ΠΉΠ»ΠΎΠ². Π’Ρ€ΠΈ ΠΈΠ· этих Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ, GetFileSize, GetFileSizeEx ΠΈ SetEndOfFile, Π±Ρ‹Π»ΠΈ описаны Ρ€Π°Π½Π΅Π΅ Π² этой Π³Π»Π°Π²Π΅.

Для получСния Π΄Ρ€ΡƒΠ³ΠΈΡ… Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. НапримСр, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΊΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°, слСдуСт Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ GetFileTime.

BOOL GetFileTime(HANDLE hFile, LPFILETIME lpftCreation, LPFILETIME lpftLastAccess, LPFILETIME lpftLastWrite) 

Π£ΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ здСсь ΠΈ Π² структурС WIN32_FIND_DATA ΠΌΠ΅Ρ‚ΠΊΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой 64-Π±ΠΈΡ‚ΠΎΠ²Ρ‹Π΅ Ρ†Π΅Π»Ρ‹Π΅ числа Π±Π΅Π· Π·Π½Π°ΠΊΠ°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹Ρ€Π°ΠΆΠ°ΡŽΡ‚ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρƒ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π°, Π²Ρ‹Ρ‡ΠΈΡΠ»Π΅Π½Π½ΡƒΡŽ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ условного Π½Π°Ρ‡Π°Π»Π° отсчСта (1 января 1601 Π³ΠΎΠ΄Π°) ΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½Π½ΡƒΡŽ Π²ΠΎ врСмя UTC (Universal Coordinated Time β€” всСобщСС скоординированноС врСмя)[16], Π² 100-наносСкундных Π΅Π΄ΠΈΠ½ΠΈΡ†Π°Ρ… Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ (107 Π΅Π΄ΠΈΠ½ΠΈΡ† Π² 1 сСкундС). Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с этими Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ прСдусмотрСно нСсколько ΡƒΠ΄ΠΎΠ±Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ.

β€’ Ѐункция FileTimeToSystemTime (здСсь Π½Π΅ описываСтся; см. ΡΠΏΡ€Π°Π²ΠΎΡ‡Π½ΡƒΡŽ систСму Windows ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ 3.2) Ρ€Π°Π·Π±ΠΈΠ²Π°Π΅Ρ‚ ΠΌΠ΅Ρ‚ΠΊΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Ρ„Π°ΠΉΠ»Π° Π½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ Π±Π»ΠΎΠΊΠΈ, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ СстСствСнным Π΅Π΄ΠΈΠ½ΠΈΡ†Π°ΠΌ измСрСния, ΠΎΡ‚ Π³ΠΎΠ΄ΠΎΠ² Π΄ΠΎ сСкунд ΠΈ миллисСкунд. Π­Ρ‚ΠΈ Π±Π»ΠΎΠΊΠΈ ΡƒΠ΄ΠΎΠ±Π½ΠΎ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π΅ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² Ρ„Π°ΠΉΠ»ΠΎΠ² Π½Π° экран ΠΈΠ»ΠΈ ΠΏΡ€ΠΈΠ½Ρ‚Π΅Ρ€.

β€’ Π€ΡƒΠ½ΠΊΡ†ΠΈΡ SystemTimeToFileTime ΠΎΠ±Ρ€Π°Ρ‰Π°Π΅Ρ‚ этот процСсс, прСобразуя врСмя, Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½Π½ΠΎΠ΅ Π² СстСствСнных Π΅Π΄ΠΈΠ½ΠΈΡ†Π°Ρ…, Π² ΠΌΠ΅Ρ‚ΠΊΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Ρ„Π°ΠΉΠ»Π°.

β€’ Π€ΡƒΠ½ΠΊΡ†ΠΈΡ CompareFileTime сравниваСт ΠΌΠ΅Ρ‚ΠΊΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π΄Π²ΡƒΡ… Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ Π² случаС ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ³ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, зависящСС ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, мСньшС (-1), Ρ€Π°Π²Π½ΠΎ (0) ΠΈΠ»ΠΈ большС (+1) Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΊΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ со Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΌΠ΅Ρ‚ΠΊΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°.

β€’ Π”ля измСнСния ΠΌΠ΅Ρ‚ΠΎΠΊ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ слуТит функция SetFileTime; ΠΌΠ΅Ρ‚ΠΊΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Π½Π΅ ΠΏΠΎΠ΄Π»Π΅ΠΆΠ°Ρ‰ΠΈΠ΅ измСнСнию, ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Ρ€Π°Π²Π½Ρ‹ΠΌΠΈ 0. NTFS ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ всС Ρ‚Ρ€ΠΈ Ρ‚ΠΈΠΏΠ° ΠΌΠ΅Ρ‚ΠΎΠΊ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ², Π½ΠΎ FAT Π΄Π°Π΅Ρ‚ Ρ‚ΠΎΡ‡Π½Ρ‹Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для ΠΌΠ΅Ρ‚ΠΎΠΊ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ послСднСго обращСния.

β€’ Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ FileTimeToLocalFileTime ΠΈ LocalFileTimeToFileTime ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΡŽΡ‚ значСния ΠΌΠ΅Ρ‚ΠΎΠΊ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, соотвСтствСнно, ΠΎΡ‚ всСобщСго скоординированного Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ UTC ΠΊ мСстному Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚.

Ѐункция GetFileType, которая здСсь ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ Π½Π΅ описываСтся, позволяСт Ρ€Π°Π·Π»ΠΈΡ‡Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ Ρ‚Ρ€Π΅Ρ… Ρ‚ΠΈΠΏΠΎΠ²: дисковыС, ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ (ΠΊ Π½ΠΈΠΌ, ΠΏΠΎ сути, относятся Ρ‚Π°ΠΊΠΈΠ΅ устройства, ΠΊΠ°ΠΊ ΠΏΡ€ΠΈΠ½Ρ‚Π΅Ρ€Ρ‹ ΠΈ консоли) ΠΈ ΠΊΠ°Π½Π°Π»Ρ‹ (см. Π³Π»Π°Π²Ρƒ 11). Как ΠΈ Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ Π΄Ρ€ΡƒΠ³ΠΈΡ… случаСв, Ρ„Π°ΠΉΠ», характСристику ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, задаСтся дСскриптором.

Ѐункция GetFileAttributes ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° имя Ρ„Π°ΠΉΠ»Π° ΠΈΠ»ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°, Π° всю ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎΠ± Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°Ρ… ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚ Ρ‡Π΅Ρ€Π΅Π· своС Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ dwFileAttributes. 

DWORD GetFileAttributes(LPCTSTR lpFileName)

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅: Π² случаС ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ³ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ β€” Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ Ρ„Π°ΠΉΠ»Π°, ΠΈΠ½Π°Ρ‡Π΅ β€” 0xFFFFFFFF.

Для опрСдСлСния Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ логичСским сравнСниСм Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ³ΠΎ значСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ с ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌΠΈ масками Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ². НСкоторыС Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°, ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ΡΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ CreateFile. Π’ качСствС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΌΠΎΠΆΠ½ΠΎ привСсти ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹:

β€’ FILE_ATTRIBUTE_DIRECTORY

β€’ FILE_ATTRIBUTE_NORMAL

β€’ FILE_ATTRIBUTE_READONLY

β€’ FILE_ATTRIBUTE_TEMPORARY

Для измСнСния Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² слуТит функция SetFileAttributes. 

Π’ UNIX Ρ‚Ρ€Π΅ΠΌ Π²Ρ‹ΡˆΠ΅ΠΎΠΏΠΈΡΠ°Π½Π½Ρ‹ΠΌ функциям Find ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ opendir, readdir ΠΈ closedir. Ѐункция stat прСдоставляСт Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ„Π°ΠΉΠ»Π° ΠΈ значСния ΠΌΠ΅Ρ‚ΠΎΠΊ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Π΅Π³ΠΎ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½ΠΎΠΌ ΠΈΠ»ΠΈ Π³Ρ€ΡƒΠΏΠΏΠΎΠ²ΠΎΠΌ Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Π΅, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡƒΡŽ для Π·Π°Ρ‰ΠΈΡ‚Ρ‹ Ρ„Π°ΠΉΠ»ΠΎΠ² Π² UNIX. Разновидностями этой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ fstat ΠΈ lstat. Π­Ρ‚ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Ρ‚ΠΈΠΏΠ΅ Ρ„Π°ΠΉΠ»Π°. ΠœΠ΅Ρ‚ΠΊΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Ρ„Π°ΠΉΠ»Π° Π² UNIX ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ΡΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ utime. Π­ΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½Ρ‚Π° Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° Π² UNIX Π½Π΅ сущСствуСт.

ИмСнованиС Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ²

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ функция создаСт ΠΈΠΌΠ΅Π½Π° для Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ². Π€Π°ΠΉΠ» ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² любом Π·Π°Π΄Π°Π½Π½ΠΎΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅, ΠΈ Π΅Π³ΠΎ имя Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ.

Ѐункция GetTempFileName прСдоставляСт ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠ΅ имя Ρ„Π°ΠΉΠ»Π° с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ .tmp, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ доступа, ΠΈ ΠΏΡ€ΠΈ нСобходимости создаСт Ρ„Π°ΠΉΠ». Π­Ρ‚Π° функция ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² рядС ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² (ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° 6.1, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° 7.1 ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅).