1

我今天一直在研究代码片段。代码的一部分读取文件中的字数。我正在使用 StreamReader 做同样的事情,但它似乎给出了 DirectoryNotFound 异常。这是事件的代码

          protected void Button1_Click(object sender, EventArgs e)
{
    string filename = string.Empty;


    string FilePath = ConfigurationManager.AppSettings["FilePath"].ToString();
    if (FileUpload1.HasFile)
    {
        string[] Exe = { ".txt" };
        string FileExt = System.IO.Path.GetExtension(FileUpload1.PostedFile.FileName);
        bool isValidFile = Exe.Contains(FileExt);
        if (isValidFile)
        {
            int FileSize = FileUpload1.PostedFile.ContentLength;
            if (FileSize <= 102400)
            {
                filename = Path.GetFileName(FileUpload1.FileName);
                FileUpload1.SaveAs(Server.MapPath(FilePath) + filename);

                StreamReader sr = new StreamReader(FilePath+filename);
                //The error shows up here and i have tried to use FilePath as the single parameter too 

                int counter = 0;
                string delim = " ,.?!";
                string[] fields = null;
                string line = null;

                while (!sr.EndOfStream)
                {
                    line = sr.ReadLine();//each time you read a line you should split it into the words
                    line.Trim();
                    fields = line.Split(delim.ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
                    counter += fields.Length; //and just add how many of them there is


                }
                sr.Close();
                lblcount.Text = counter.ToString();





                lblMsg.Text = "File upload successfully!";
            }
            else
            {
                lblMsg.Text = "File Size allowed upto 100kb!";

            }
        }
        else
        {
            lblMsg.Text = "Please Upload a text File!";
        }
    }
    else
    {
        lblMsg.Text = "Please upload a file!";
    }
}

}

这能解决吗??

提前致谢!

4

1 回答 1

2

用于Path.Combine构建路径:

string path = Path.Combine(Server.MapPath(FilePath), filename);
FileUpload1.SaveAs(path);
using(StreamReader sr = new StreamReader(path))
{
    // ...
}
于 2013-11-10T15:25:38.033 回答