将现有文件删除到特定文件夹

时间:2013-11-19 09:28:58

标签: c#

美好的一天,

我创建了一个简单的Web应用程序,可以将.csv文件保存到我的Web应用程序的特定文件夹中。但是我的代码上有些东西没有保存到我的特定文件夹中。我需要保存.csv文件到那个文件夹。

这是我的代码..

        protected void btnERSFRSWRSQuery_Click(object sender, EventArgs e)
             {
             grdQueryTotal.DataSource =   _dVizOutputBll.GetERSFRSQRSQueryResultList(_totalValueTableEntities);
            grdQueryTotal.DataBind();

       string fname = "ERSFRSWRSQueryTotal.csv";

        string fLocation = HttpContext.Current.Server.MapPath("/data/" + fname);
        StreamWriter sw = new StreamWriter(fLocation,true); //("C:\\Users\\jessr\\Desktop\\GTML\\GTML\\WebApplication1\\data\\gridview.csv");



        //if (File.Exists(fname))
        //{

        //    File.Delete(fname);
        //    sw.Close();
        //}
        //else
        //{

            for (int i = 0; i < grdQueryTotal.Columns.Count; i++)
            {
                sw.Write(grdQueryTotal.Columns[i].HeaderText);
                if (i != grdQueryTotal.Columns.Count)
                {
                    sw.Write(",");
                }
            }
            // add new line
            sw.Write(sw.NewLine);
            // iterate through all the rows within the gridview
            foreach (GridViewRow dr in grdQueryTotal.Rows)
            {
                // iterate through all colums of specific row
                for (int i = 0; i < grdQueryTotal.Columns.Count; i++)
                {
                    // write particular cell to csv file
                    sw.Write(dr.Cells[i].Text);
                    if (i != grdQueryTotal.Columns.Count)
                    {
                        sw.Write(",");
                    }
                }
                // write new line
                sw.Write(sw.NewLine);
            }

            // flush from the buffers.
            sw.Flush();
            // closes the file
            sw.Close();
        //}
    }
}

但首先我将检查csv文件是否已存在于我的目标文件夹中(如果存在)我将删除它,否则我将保存新的csv文件

4 个答案:

答案 0 :(得分:1)

如果您将"/data/"替换为"~/data/",那么您应该没问题 - 如果data确实是您网络应用程序文件夹中文件夹的名称。

答案 1 :(得分:1)

您需要使用tilde运算符来表示当前的Project root文件夹。

试试这个:

string fLocation = HttpContext.Current.Server.MapPath("~/data/" + fname);

注意:确保数据文件夹位于root文件夹

删除文件:

       if(File.Exists(fLocation))
        {    
            File.Delete(fname);
            sw.Close();
        }

答案 2 :(得分:0)

使用AppDomain.CurrentDomain

System.IO.Directory.CreateDirectory(AppDomain.CurrentDomain.BaseDirectory + "FolderName/")

答案 3 :(得分:0)

删除代码的问题在于您使用的是File.Exists(fname)。您的程序不知道fname的位置,您需要文件的完整路径fLocation