小弟做的一个C#的应用程序员
给一个文本框添加了一些字符串都是换行的  \r\n
例如
C:\Documents and Settings\Administrator\My Documents\Expression\Blend.xml 这是一行
C:\Documents and Settings\Administrator\My Documents\Expression\abc.xml 这是一行在测试的时候获取没一行的时候提示说有非法字符,
            string[] splitNum = textBox1.Text.Trim().Split(new Char[] { '\n' });            for (int i = 0; i < splitNum.Length;i++ )
            {
                MessageBox.Show(Path.GetDirectoryName(splitNum[i]));
            }我是靠\n来获取没一行数据的.
可是在用获取文件的C:\Documents and Settings\Administrator\My Documents\Expression目录的时候却发现说有非法字符?
是不是因为我之前\r\n换行的原因?
或者不用Path获取,用其他什么非法可以获取到? 取最后一个"\"? 这个这么写啊?
分数不多,求高人赐教

解决方案 »

  1.   

    string str = @"C:\Documents and Settings\Administrator\My Documents\Expression\Blend.xml";
     string path = str.SubString(0,str.LastIndexOf("\\"));
      

  2.   

    将分隔字符\n改为字符串\r\n即可
    string[] splitNum = textBox1.Text.Trim().Split(new string[] { '\r\n' });            for (int i = 0; i < splitNum.Length;i++ )
                {
                    MessageBox.Show(Path.GetDirectoryName(splitNum[i]));
                }
      

  3.   

    这样好像报错没有这种语法
    试试这种
     string[] splitNum = textBox1.Text.Trim().Split(new string[] {"\r\n"},StringSplitOptions.RemoveEmptyEntries);
      

  4.   

    将分隔字符\n改为字符串\r\n即可
      

  5.   

    将分隔字符\n改为字符串\r\n即可
      

  6.   

    string[] splitNum = textBox1.Text.Trim().Split(@"\r\n");
      

  7.   

    严格来说是 要把 "\r\n" 换成  Environment.NewLine
      

  8.   

     
    感谢一楼和三楼的帮助.问题解决啦.
    我贴出代码 // 方案1  string[] splitNum = tbAllFiles.Text.Trim().Split(new string[] {"\r\n" },StringSplitOptions.RemoveEmptyEntries);
       //方案2         string[] splitNum = tbAllFiles.Text.Trim().Split(new char[] { '\n' });
                
                for (int i = 0; i < splitNum.Length;i++ )
                {
                  //方案1  MessageBox.Show(Path.GetDirectoryName(splitNum[i]));
                    
                  //方案2   MessageBox.Show(splitNum[i].Substring(0,splitNum[i].LastIndexOf("\\")));
                }