2 回答

TA贡献1874条经验 获得超12个赞
一般技术:
string MyPathCombine(string basename, string filename)
{
int idx = basename.Length;
if (idx == 0) return filename;
if (basename[idx - 1] == '/') --idx;
return filename;
}
IEnumerable<string> GetFilesSlash(string dirname)
=> Directory.GetFiles(dirname.Replace('/', Path.DirectorySeparatorCharacter)).Select((p) => MyPathCombine(dirname, Path.GetFileName(p));
如果你所有的路径都来自真实系统,这种更简单的形式会起作用,但如果有任何来自另一个系统,它就不会,因为你可能会被\角色毒化。然而,这并不是唯一的危险。从这里开始变得颠簸。
IEnumerable<string> GetFilesSlash(string dirname)
=> Directory.GetFiles(dirname.Replace('/', Path.DirectorySeparatorCharacter)).Select((p) => p.Replace(Path.DirectorySeparatorChar, '/'));
- 2 回答
- 0 关注
- 226 浏览
添加回答
举报