Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
vnotepad
Exa
提交
10096d10
E
Exa
项目概览
vnotepad
/
Exa
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
E
Exa
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
10096d10
编写于
1月 31, 2015
作者:
B
Ben S
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Prevent crash for filenames with no components
Now there are no more unwrap()s!
上级
6d4b30d5
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
12 addition
and
2 deletion
+12
-2
src/file.rs
src/file.rs
+12
-2
未找到文件。
src/file.rs
浏览文件 @
10096d10
...
@@ -45,8 +45,18 @@ impl<'a> File<'a> {
...
@@ -45,8 +45,18 @@ impl<'a> File<'a> {
/// Create a new File object from the given Stat result, and other data.
/// Create a new File object from the given Stat result, and other data.
pub
fn
with_stat
(
stat
:
io
::
FileStat
,
path
:
&
Path
,
parent
:
Option
<&
'a
Dir
>
)
->
File
<
'a
>
{
pub
fn
with_stat
(
stat
:
io
::
FileStat
,
path
:
&
Path
,
parent
:
Option
<&
'a
Dir
>
)
->
File
<
'a
>
{
let
v
=
path
.filename
()
.unwrap_or_else
(||
panic!
(
"Failed to get filename for {:?}"
,
path
));
// fails if / or . or ..
let
filename
=
String
::
from_utf8_lossy
(
v
);
// The filename to display is the last component of the path. However,
// the path has no components for `.`, `..`, and `/`, so in these
// cases, the entire path is used.
let
bytes
=
match
path
.components
()
.last
()
{
Some
(
b
)
=>
b
,
None
=>
path
.as_vec
(),
};
// Convert the string to UTF-8, replacing any invalid characters with
// replacement characters.
let
filename
=
String
::
from_utf8_lossy
(
bytes
);
File
{
File
{
path
:
path
.clone
(),
path
:
path
.clone
(),
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录