string slash= "/";
string slash_ex = "/";
//如果你要求dir必须是带斜杠或者反斜杠的
process_file(string dir)
{
file = dir + slash + "foo.txt";
.....handle file.
}
//如果是带的
process_file(string dir)
{
file = dir + "foo.txt";
.....handle file.
}
当设计一个函数接收文件目录名时,明确要求带或不带斜杠都很麻烦。
其实有一种很简单的办法:
设计一个函数,如果传进的目录名有斜杠或者反斜杠(不同的系统上有不一样的路径约束,注意),
则原样返回,否则给它添加一个斜杠.
string decorate_dir(string dir)
{
if (dir has slash or slash_ex)
return dir;
else (dir.append(slash)
return dir;
}
这样接口就不用管目录是否带了斜杠,虽然牺牲了一些效率,但是代码简洁也更正确多了。
string slash_ex = "/";
//如果你要求dir必须是带斜杠或者反斜杠的
process_file(string dir)
{
file = dir + slash + "foo.txt";
.....handle file.
}
//如果是带的
process_file(string dir)
{
file = dir + "foo.txt";
.....handle file.
}
当设计一个函数接收文件目录名时,明确要求带或不带斜杠都很麻烦。
其实有一种很简单的办法:
设计一个函数,如果传进的目录名有斜杠或者反斜杠(不同的系统上有不一样的路径约束,注意),
则原样返回,否则给它添加一个斜杠.
string decorate_dir(string dir)
{
if (dir has slash or slash_ex)
return dir;
else (dir.append(slash)
return dir;
}
这样接口就不用管目录是否带了斜杠,虽然牺牲了一些效率,但是代码简洁也更正确多了。