Ras*_*ber 62 .net c# filenames path
将路径与文件名组合的最佳方法是什么?
也就是说,给予c:\foo和bar.txt,我想要c:\foo\bar.txt.
鉴于c:\foo和..\bar.txt,我想要一个错误或c:\foo\bar.txt(所以我不能Path.Combine()直接使用).同样的c:\foo和bar/baz.txt,我想要一个错误或c:\foo\baz.txt(不c:\foo\bar\baz.txt).
我意识到,我可以检查文件名不包含'\'或'/',但这还够吗?如果没有,那么正确的检查是什么?
Luk*_*keH 99
如果您希望"坏"文件名生成错误:
if (Path.GetFileName(fileName) != fileName)
{
throw new Exception("'fileName' is invalid!");
}
string combined = Path.Combine(dir, fileName);
Run Code Online (Sandbox Code Playgroud)
或者,如果您只是想静静地更正"坏"文件名而不抛出异常:
string combined = Path.Combine(dir, Path.GetFileName(fileName));
Run Code Online (Sandbox Code Playgroud)
GvS*_*GvS 17
你可以使用:
Path.Combine(folder, Path.GetFileName(fileName))
Run Code Online (Sandbox Code Playgroud)
或者,跳过\(未经测试,可能Path.GetFileName自动处理)
Path.Combine(folder, Path.GetFileName(fileName.Replace("/","\\")))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
72134 次 |
| 最近记录: |