-
Notifications
You must be signed in to change notification settings - Fork 9
Добавление функции проверки абсолютного пути #24
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: develop
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -339,3 +339,55 @@ | |
| Возврат РезультирующийПуть; | ||
|
|
||
| КонецФункции | ||
|
|
||
| Функция ЭтоАбсолютныйПуть(Знач Путь) Экспорт | ||
| Если ЭтоWindows() Тогда | ||
| Возврат ЭтоАбсолютныйПутьWindows(Путь); | ||
| Иначе | ||
| Возврат ЭтоАбсолютныйПутьUnix(Путь); | ||
| КонецЕсли; | ||
| КонецФункции | ||
|
|
||
| Функция ЭтоАбсолютныйПутьUnix(Знач Путь) Экспорт | ||
| Путь = СокрЛП(Путь); | ||
| Возврат Лев(Путь, 1) = "/"; | ||
| КонецФункции | ||
|
|
||
| Функция ЭтоАбсолютныйПутьWindows(Знач Путь) Экспорт | ||
|
|
||
| Путь = СокрЛП(Путь); | ||
| ПервыйСимвол = Лев(Путь, 1); | ||
|
|
||
| Если ПервыйСимвол = "\" Или ПервыйСимвол = "/" Тогда | ||
| Возврат Истина; | ||
| КонецЕсли; | ||
|
|
||
| // C:\ или C:/ | ||
| Если СтрДлина(Путь) >= 3 Тогда | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Если не ошибаюсь, винда тоже считает начальный слеш абсолютным путем. Путь, начинающийся со слэша винда воспринимает как путь относительно корня "текущего" диска C:\Users\user>cd /Desktop
The system cannot find the path specified.а вот относительно корня диска (срабатывает, как корневой путь от текущего диска) C:\Users\user>cd /Users/user/Desktop
C:\Users\user\Desktop>переключаемся на диск D: и уже не найдет C:\Users\user\Desktop>D:
D:\>cd /Users/user/Desktop
The system cannot find the path specified. |
||
| ВторойСимвол = Сред(Путь, 2, 1); | ||
| ТретийСимвол = Сред(Путь, 3, 1); | ||
|
|
||
| Если ЭтоДопустимаяБукваДискаWindows(ПервыйСимвол) | ||
| И ВторойСимвол = ":" | ||
| И (ТретийСимвол = "\" Или ТретийСимвол = "/") Тогда | ||
| Возврат Истина; | ||
| КонецЕсли; | ||
| КонецЕсли; | ||
|
|
||
| Возврат Ложь; | ||
|
|
||
| КонецФункции | ||
|
|
||
| Функция ЭтоДопустимаяБукваДискаWindows(Символ) | ||
|
|
||
| Код = КодСимвола(Символ); | ||
|
|
||
| Возврат (Код >= КодСимвола("A") И Код <= КодСимвола("Z")) | ||
| ИЛИ (Код >= КодСимвола("a") И Код <= КодСимвола("z")); | ||
|
|
||
| КонецФункции | ||
|
|
||
| Функция ЭтоWindows() | ||
| Платформа = Новый СистемнаяИнформация().ТипПлатформы; | ||
| Возврат Платформа = ТипПлатформы.Windows_x86 Или Платформа = ТипПлатформы.Windows_x86_64; | ||
| КонецФункции | ||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Считать ли абсолютными путями пути с ".." в теле?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Если начинаются с корня, то да, конечно.