请选择 进入手机版 | 继续访问电脑版

马上加入IBC程序猿 各种源码随意下,各种教程随便看! 注册 每日签到 加入编程讨论群

C#教程 ASP.NET教程 C#视频教程程序源码享受不尽 C#问题入口 ASP.NET问题入口

【C#问题提交】 社群合作 申请版主 程序开发 【远程协助】 每天乐一乐 每日签到 【承接毕业设计】 面试-葵花宝典下载

官方一群:

官方二群:

查看: 1330|回复: 4

[求助] C#使用FileStream和StreamWriter写入文件时出现文件被其他程序占用的异常,求大神...

  [复制链接]
  • TA的每日心情

    2019-3-9 17:29
  • 签到天数: 2 天

    [LV.1]初来乍到

    1

    主题

    1

    帖子

    37

    积分

    新手上路

    Rank: 1

    积分
    37
    发表于 2019-3-9 17:32:53 | 显示全部楼层 |阅读模式

    马上加入IBC,查看更多教程

    您需要 登录 才可以下载或查看,没有帐号?立即注册

    x
    出现异常的代码:
    [C#] 纯文本查看 复制代码
    if (System.IO.File.Exists(ProjectInPath + "/Project/ProjectName/ProjectNameRead.LMPN"))
     {
     String ProjectNameWrite = System.IO.File.ReadAllText (ProjectInPath + "/Project/ProjectName/ProjectNameRead.LMPN");
     FileStream fs_sw = new FileStream(ProjectInPath + "/Project/ProjectName/ProjectNameRead.LMPN", FileMode.Create );
     StreamWriter sw_fs = new StreamWriter(fs_sw);
     if(ProjectNameWrite == "")
     {
     sw_fs.Write(ProjectName);
     }
     else
     {
     sw_fs.Write(ProjectNameWrite + Environment.NewLine + ProjectName); 
     }
     sw_fs.Flush();
     sw_fs.Close();
     fs_sw.Close();
     FileStream FS = new FileStream(ProjectInPath + "/Project/ProjectPath/" + ProjectName + ".LMPP",FileMode.Create);
     StreamWriter SW = new StreamWriter(FS);
     SW.Write("DefaultProjectPath");
     SW.Flush();
     SW.Close();
     FS.Close();
     FileStream FSSW = new FileStream(ProjectInPath + "/Project/ProjectDate/" + ProjectName + ".LMPD",FileMode.Create);
     StreamWriter SWFS = new StreamWriter(FSSW);
     SWFS.Write(CreateDate);
     SWFS.Flush();
     SWFS.Close();
     FSSW.Close();
     FileStream fs_LastOpenTime = new FileStream(ProjectInPath + "/Project/LastOpenTime/" + ProjectName + ".LMLOT", FileMode.Create);
     StreamWriter sw_LastOpenTime = new StreamWriter(fs_LastOpenTime);
     sw_LastOpenTime.Write(System.DateTime.Now.ToString());
     sw_LastOpenTime.Flush();
     sw_LastOpenTime.Close();
     fs_LastOpenTime.Close();
     FileStream fs_FinallyOpenProject = new FileStream(ProjectInPath + "/Project/FinallyOpenProject/FinallyOpenProject.LMFOP", FileMode.Create);
     StreamWriter sw_FinallyOpenProject = new StreamWriter(fs_FinallyOpenProject);
     sw_FinallyOpenProject.Write(ProjectName);
     sw_FinallyOpenProject.Flush();
     sw_FinallyOpenProject.Close();
     fs_FinallyOpenProject.Close();
     return true;
     }
     else
     {
     return false;
     }


    还使用了一段代码,调试了数次之后,发现似乎与这段代码有些关系:


    [C#] 纯文本查看 复制代码
    String line = String.Empty;
                            int IfProjectNameSave = 0;
                            using (StreamReader reader = new StreamReader(SC.GetInPath() + "/Project/ProjectName/ProjectNameRead.LMPN"))
                            {
                                line = reader.ReadLine();
                                while(line != null && line != "")
                                {
                                    if(TextBox_项目名称.Text == line)
                                    {
                                        MessageBox.Show("已存在相同项目名的项目!", "提示");
                                        IfProjectNameSave = 1;
                                        break;
                                    }else
                                    {
                                        IfProjectNameSave = 2;
                                    }
                                    line = reader.ReadLine();
                                }
                                if(System.IO.File.ReadAllText(SC.GetInPath() + "/Project/ProjectName/ProjectNameRead.LMPN") == "")
                                {
                                    IfProjectNameSave = 2;
                                }
                                if(IfProjectNameSave == 2)
                                {
                                    String ProjectType = String.Empty;
                                    String CompileType = String.Empty;
                                    Boolean IfCreateProject;
                                    if(RadioButton_Windos.Checked)
                                    {
                                        ProjectType = "Windows";
                                    }
                                    if(RadioButton_解释编写.Checked)
                                    {
                                        CompileType = "脚本编译";
                                    }
                                    if(System.IO.File.Exists(SC.GetInPath() + "/Project/DefaultProjectPath/" + TextBox_项目名称.Text + ".LMP"))
                                    {
                                        MessageBox.Show("存储路径下有着相同的项目文件,程序将默认为覆盖此项目文件!", "警告");
                                        File.Delete(SC.GetInPath() + "/Project/DefaultProjectPath/" + TextBox_项目名称.Text + ".LMP");
                                        IfCreateProject = SC.CreateProject(TextBox_项目名称.Text, ProjectType, System.DateTime.Now.ToString(), CompileType, SC.GetInPath());
                                        if (IfCreateProject)
                                        {
                                            SC.InEdit();
                                        }
                                        else
                                        {
                                            MessageBox.Show("项目创建失败,请到官网查看解决方法!", "提示");
                                        }
    
                                    }
                                    else
                                    {
                                        IfCreateProject = SC.CreateProject(TextBox_项目名称.Text, ProjectType, System.DateTime.Now.ToString(), CompileType, SC.GetInPath());
                                        if (IfCreateProject)
                                        {
                                            SC.InEdit();
                                        }
                                        else
                                        {
                                            MessageBox.Show("项目创建失败,请到官网查看解决方法!", "提示");
                                        }
                                    }
                                }
                                reader.Close();
                            }
    



    捕获.PNG
  • TA的每日心情
    开心
    前天 09:04
  • 签到天数: 1482 天

    [LV.10]以坛为家III

    1429

    主题

    3338

    帖子

    9万

    积分

    管理员

    IBC编程社区-原道楠

    Rank: 9Rank: 9Rank: 9

    积分
    95498

    推广达人突出贡献优秀版主荣誉管理论坛元老

    发表于 2019-3-11 09:32:06 | 显示全部楼层
    你是不是调用删除文件之后立马就创建了? 你加个延迟试试,这种情况可能是还没删完呢就创建了。
    C#论坛 www.ibcibc.com IBC编程社区
    C#
    C#论坛
    IBC编程社区

    该用户从未签到

    0

    主题

    8

    帖子

    44

    积分

    新手上路

    Rank: 1

    积分
    44
    发表于 2019-8-2 13:52:14 | 显示全部楼层
    看看吧....












    2019代怀孕价格
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则