我正试图剥离正在传递的unc路径的最后一部分,并将其放入一个变量中,以便在下一行的方法中使用。
示例路径是 - > \\ourfileserver\remoteuploads\countyfoldername\personfoldername
如何从中剥离countyfoldername
?
我曾想过尝试
var th = e.FullPath.LastIndexOf('\\');
var whichFolder = folderPath.Substring(th);
但这是一个转义字符,它也不喜欢@
。
这是否是正确的方向?
我想我有些困惑。 LastIndexOf
不起作用,因为我需要countyfoldername
,在我的例子中,它发生在3/4的位置。
另外,我需要存储在变量中的countyfoldername
,而不是文件名本身。
为了给出一些上下文,我有一个在服务中运行的FileSystemWatcher
。它正在监视单个文件夹路径,并在那里创建文件时通过电子邮件发送。现在我需要修改它。现在该文件夹路径中有4个县文件夹,我需要根据文件的创建位置向其他电子邮件地址发送电子邮件。
如果我能弄清楚如何可靠地获取县文件夹名称,我可以使用简单的switch语句。
由于
答案 0 :(得分:5)
实际上,你应该使用Uri Class并将它分成几段。
Uri uri = new Uri(@"\\ourfileserver\remoteuploads\countyfoldername\personfoldername");
Console.WriteLine(uri.Segments[3]); // personfoldername
Console.ReadLine();
答案 1 :(得分:2)
string folder = System.IO.Path.GetFileName(fullpath)
完整文档here。
答案 2 :(得分:1)
你有没有尝试过:
var myCounty = e.FullPath.LastIndexOf("\\");
更新: 为了获得国家文件夹的名称,只需删除从县查找的字符数,然后再做另一个索引..
答案 3 :(得分:1)
您需要从LastIndexOf(“\”)
创建子字符串看起来像:
var folderName = e.FullPath.Substring(e.FullPath.LastIndexOf("\\"));
答案 4 :(得分:0)
我认为你应该分手。
string[] Sep= {"\\"}
string[] Folders;
Folders= folderPath.Split(NewLine, StringSplitOptions.RemoveEmptyEntries);
您可以遍历数组并完全控制字符串。