我试图在每次生成字符串时使用'/'
charDirectory.GetFiles
或不替换字符串来获取路径。即使我有一些宏告诉他在特定操作系统上使用 AltSeperator,Directory.GetDirectories
我也会简单地要求库用作目录分隔符。'/'
问问题
209 次
2 回答
3
不幸的是,这似乎是不可能的。
Path.DirectorySeparatorChar
并Path.AltDirectorySeparatorChar
取决于您的应用程序运行的操作系统,并且是只读的。
根据文档 DirectorySeparatorChar
在\
Windows 和/
其他任何地方,并且Path.AltDirectorySeparatorChar
(当前)总是/
.
于 2019-01-05T17:45:29.680 回答
0
一般技术:
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, '/'));
于 2019-01-07T04:00:49.687 回答