Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
徽霖
Vscode
提交
17a61a53
V
Vscode
项目概览
徽霖
/
Vscode
通知
9
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
V
Vscode
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
17a61a53
编写于
5月 31, 2016
作者:
J
Johannes Rieken
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
make isUNC more spec compliant
上级
874fb60b
变更
2
显示空白变更内容
内联
并排
Showing
2 changed file
with
47 addition
and
11 deletion
+47
-11
src/vs/base/common/paths.ts
src/vs/base/common/paths.ts
+38
-4
src/vs/base/test/common/paths.test.ts
src/vs/base/test/common/paths.test.ts
+9
-7
未找到文件。
src/vs/base/common/paths.ts
浏览文件 @
17a61a53
...
...
@@ -233,14 +233,48 @@ export const join: (...parts: string[]) => string = function () {
};
/**
* Check if the path follows this pattern: `\\hostname\sharename`.
*
* @see https://msdn.microsoft.com/en-us/library/gg465305.aspx
* @return A boolean indication if the path is a UNC path, on none-windows
* always false.
*/
export
function
isUNC
(
path
:
string
):
boolean
{
if
(
!
isWindows
||
!
path
)
{
return
false
;
// UNC is a windows concept
if
(
!
isWindows
)
{
// UNC is a windows concept
return
false
;
}
path
=
this
.
normalize
(
path
,
true
);
if
(
!
path
||
path
.
length
<
5
)
{
// at least \\a\b
return
false
;
}
return
path
[
0
]
===
nativeSep
&&
path
[
1
]
===
nativeSep
;
let
code
=
path
.
charCodeAt
(
0
);
if
(
code
!==
_backslash
)
{
return
false
;
}
code
=
path
.
charCodeAt
(
1
);
if
(
code
!==
_backslash
)
{
return
false
;
}
let
pos
=
2
;
let
start
=
pos
;
for
(;
pos
<
path
.
length
;
pos
++
)
{
code
=
path
.
charCodeAt
(
pos
);
if
(
code
===
_backslash
)
{
break
;
}
}
if
(
start
===
pos
)
{
return
false
;
}
code
=
path
.
charCodeAt
(
pos
+
1
);
if
(
isNaN
(
code
)
||
code
===
_backslash
)
{
return
false
;
}
return
true
;
}
function
isPosixAbsolute
(
path
:
string
):
boolean
{
...
...
src/vs/base/test/common/paths.test.ts
浏览文件 @
17a61a53
...
...
@@ -174,14 +174,16 @@ suite('Paths', () => {
});
test
(
'
isUNC
'
,
()
=>
{
assert
(
!
paths
.
isUNC
(
'
foo
'
));
assert
(
!
paths
.
isUNC
(
'
/foo
'
));
assert
(
!
paths
.
isUNC
(
'
\\
foo
'
));
if
(
platform
.
isWindows
)
{
assert
(
paths
.
isUNC
(
'
\\\\
foo
'
));
}
else
{
assert
(
!
paths
.
isUNC
(
'
\\\\
foo
'
));
assert
.
ok
(
!
paths
.
isUNC
(
'
foo
'
));
assert
.
ok
(
!
paths
.
isUNC
(
'
/foo
'
));
assert
.
ok
(
!
paths
.
isUNC
(
'
\\
foo
'
));
assert
.
ok
(
!
paths
.
isUNC
(
'
\\\\
foo
'
));
assert
.
ok
(
paths
.
isUNC
(
'
\\\\
a
\\
b
'
));
assert
.
ok
(
!
paths
.
isUNC
(
'
//a/b
'
));
assert
.
ok
(
paths
.
isUNC
(
'
\\\\
server
\\
share
'
));
assert
.
ok
(
paths
.
isUNC
(
'
\\\\
server
\\
share
\\
'
));
assert
.
ok
(
paths
.
isUNC
(
'
\\\\
server
\\
share
\\
path
'
));
}
});
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录