找到UNC路径的一部分并放入一个变量?
我试图剥离正在传递的unc路径的最后一部分,并将其放入一个变量中,以便在下一行的方法中使用。找到UNC路径的一部分并放入一个变量?
示例路径是 - >\\ourfileserver\remoteuploads\countyfoldername\personfoldername
如何剥离只是countyfoldername
出来的呢?
我曾想过尝试
var th = e.FullPath.LastIndexOf('\\');
var whichFolder = folderPath.Substring(th);
但是这是一个转义字符,它不喜欢@
无论是。
这是否是正确的方向?
我想我有些困惑。 LastIndexOf
不起作用,因为我需要countyfoldername
,在我的示例中,它出现3/4。
此外,我需要countyfoldername
存储在一个变量,而不是文件名本身。
为了给出一些上下文,我有一个运行在服务中的FileSystemWatcher
。它正在监视单个文件夹路径并在文件被创建时通过电子邮件发送。现在我需要修改它。该文件夹路径中现在有4个县级文件夹,我需要根据创建文件的位置将电子邮件发送到其他电子邮件地址。
我可以使用一个简单的switch语句,如果我能弄清楚如何可靠地获取县文件夹名称。
感谢
实际上,您应该使用Uri类并将其分为多个段。
Uri uri = new Uri(@"\\ourfileserver\remoteuploads\countyfoldername\personfoldername");
Console.WriteLine(uri.Segments[3]); // personfoldername
Console.ReadLine();
PS:当你抓取一个Segment时,它是以转义格式。例如。 “我的文件夹”将显示为“我的%20Folder”。需要调用静态方法Uri.UnescapeDataString来获取实际名称。 – dotnetguy 2013-02-12 12:34:34
你尝试:
var myCounty = e.FullPath.LastIndexOf("\\");
更新: 为了得到该国的文件夹名称,只是剪掉从县发现的字符数查找,然后再做另一最后指数..
有单引号吗?只是检查不char的使用单一?谢谢 – 2010-05-03 13:31:10
不会持续返回一个整数吗?他不需要从lastindexof开始抓取子字符串吗? – jsmith 2010-05-03 13:32:04
是的,我的计划是做这样的事情 - >'var th = e.FullPath.LastIndexOf('\\'); var whichFolder = folderPath.Substring(th);'除非有更好的方法... – 2010-05-03 13:33:33
你需要从LastIndexOf创建一个字符串( “\”)
看起来类似:
var folderName = e.FullPath.Substring(e.FullPath.LastIndexOf("\\"));
我认为你应该分裂。
string[] Sep= {"\\"}
string[] Folders;
Folders= folderPath.Split(NewLine, StringSplitOptions.RemoveEmptyEntries);
您可以遍历数组并且完全控制字符串。
您的更新代码应该可以工作,我已经使用了很多次。 – jsmith 2010-05-03 13:35:30