none
自动创建文件夹文件的方法 RRS feed

  • 问题

  • 要实现一个自动创建文件夹文件的方法,我目前实现的方法很土,可重用性差,我想请教下大家是如何创建的?

            private string checkfilepath()
            {
                if (!File.Exists(Application.StartupPath + "..\\historyfile\\"+DateTime.Now.Year+"\\"+DateTime.Now.Month+"月\\alarm"+ DateTime.Now.Day+"日.hf"))
                {
                    if (!Directory.Exists(Application.StartupPath + "..\\historyfile"))
                        Directory.CreateDirectory(Application.StartupPath + "..\\historyfile");
                    if(!Directory.Exists(Application.StartupPath+"..\\historyfile\\"+DateTime.Now.Year))
                        Directory.CreateDirectory(Application.StartupPath+"..\\historyfile\\"+DateTime.Now.Year);
                    if (!Directory.Exists(Application.StartupPath + "..\\historyfile\\" + DateTime.Now.Year + "\\" + DateTime.Now.Month + "月"))
                        Directory.CreateDirectory(Application.StartupPath + "..\\historyfile\\" + DateTime.Now.Year + "\\" + DateTime.Now.Month + "月");
                    File.Create(Application.StartupPath + "..\\historyfile\\" + DateTime.Now.Year + "\\" + DateTime.Now.Month + "月\\alarm" + DateTime.Now.Day + "日.hf");
                }
                return Application.StartupPath + "..\\historyfile\\" + DateTime.Now.Year + "\\" + DateTime.Now.Month + "月\\alarm" + DateTime.Now.Day + "日.hf";
            }我是这样实现的不知大家是如何实现的?


    can you help me?
    2010年6月3日 2:07

答案

  • Directory.CreateDirectory 会自动创建所有目录,不需要一个个创建
    问题要简单,错误须详细@错误/异常/堆栈信息+操作系统+软件版本+all the context of the issue Hope Helpful | http://www.leoworks.net
    2010年6月3日 5:28

全部回复

  • 差不多就这个办法。

    不过你这么多目录判断是没必要的,在建立文件的时候,目录不存在会自动创建的。

    为了好看点,你可以定义一个string变量来保存路径。

     


    family as water
    2010年6月3日 2:11
  • Directory.CreateDirectory 会自动创建所有目录,不需要一个个创建
    问题要简单,错误须详细@错误/异常/堆栈信息+操作系统+软件版本+all the context of the issue Hope Helpful | http://www.leoworks.net
    2010年6月3日 5:28
  • 简化后如下:

            private string checkfilepath()
            {
                string DirctoryPath, FilePath;
                DirctoryPath = Application.StartupPath + "..\\historyfile\\" + DateTime.Now.Year + "\\" + DateTime.Now.Month + "月";
                FilePath = "alarm" + DateTime.Now.Day + "日.hf";
                if (!File.Exists(DirctoryPath+"\\"+FilePath))
                {
                    if (!Directory.Exists(DirctoryPath))
                        Directory.CreateDirectory(DirctoryPath);
                   using( File.Create(DirctoryPath + "\\" + FilePath));
                }
                return DirctoryPath + "\\" + FilePath;
            }

    还能更简化吗?


    can you help me?
    2010年6月4日 1:00
  • 你好!

    这是我的代码,希望对你有帮助

    try
                {
                    if (Directory.Exists(textBox5.Text))    //判文件夹是否存在
                    {
                        string aaa = "该文件夹已经存在";
                        MessageBox.Show(aaa);
                        return;
                    }
                    else
                    {
                        DirectoryInfo dirinfo = System.IO.Directory.CreateDirectory(textBox5.Text);
                        string aaa = "创建文件夹成功,创建时间为:" + Directory.GetCreationTime(textBox5.Text);
                        MessageBox.Show(aaa);
                    }
                }
                catch (Exception ee)
                {
                    string aaa = "创建文件夹处理失败! 失败的原因是:" + ee.ToString();
                    MessageBox.Show(aaa);
                }


    共工之臣曰相柳氏,九首,以食于九山。相柳之所抵,厥为泽溪。禹杀相柳,其血腥,不可以树五谷种。禹厥之,三仞三沮,乃以为众帝之台。
    2010年6月4日 2:39