zoukankan      html  css  js  c++  java
  • cad.net 关于保存文件Database.SaveAs()出现"eFileAccessErr"错误的解决方法

    非后台情况时,在cad使用保存函数db.Save(),无论如何都会出错.

    但是当使用SaveAs()的时候,除了调用被命令的文档之外,其他已经打开的文档都会抛出错误"eFileAccessErr"

    可以从下面这个例子了解到:

            [CommandMethod("save_test1", CommandFlags.Session)]
            public void save_test1()
            {
                foreach (Document doc in Acap.DocumentManager)
                { 
                    //当打开两份图纸的时候,用db.SaveAs都是会出错的.
                    var db = doc.Database;
                    //using (doc.LockDocument())//无论是否使用文档锁
                    {
                        //db.SaveAs(db.Filename, db.SecurityParameters); //无论是这种
                          db.SaveAs(db.Filename, DwgVersion.Current);    //还是这种
                    }
                }
            }

    但是文档上面也有一个保存函数,这个倒是成功的...不过就是会关闭文档罢了.

    e大说:文档和db是分开的对象,文档占用了文件,db无法覆盖,所以用文档的 CloseAndSave 可以成功(因为桌子在内部做了工作...)

            [CommandMethod("save_test2", CommandFlags.Session)]
            public void save_test2()
            {
                foreach (Document item in Acap.DocumentManager)
                { 
                    item.CloseAndSave(item.Database.Filename); 
                }
            }

    但是我程序处理保存的时候要同时处理三种状态: 1,前台打开(激活的) 2,前台打开(未激活) 3,后台打开的

    同时,我不调用令人讨厌的Document.CloseAndSave

    福萝卜提示发送命令.

            using Acap = Autodesk.AutoCAD.ApplicationServices.Application;
    private static void TiJiao(Database db) { bool flag = true; foreach (Document doc in Acap.DocumentManager) { if (doc.Database.Filename == db.Filename)//文档是当前打开的 { doc.SendStringToExecute("_qsave ", false, true, true); //不需要切换文档 flag = false; break; } } if (flag) { //后台的数据库可以用这种方式保存 db.SaveAs(db.Filename, db.SecurityParameters); } }

    嘻嘻.感谢e大和福萝卜.

  • 相关阅读:
    Android Wear(手表)开发
    Android 中文件类型与MIME的匹配表
    匹配字符串-好技能-正则表达式
    正则表达式匹配字符串
    如何开发Android Wear应用程序
    【转】 hive安装配置及遇到的问题解决
    Hadoop项目开发环境搭建(EclipseMyEclipse + Maven)
    MapReduce 开发环境搭建(EclipseMyEclipse + Maven)
    hive权威安装出现的不解错误!(完美解决)两种方法都可以
    Hive项目开发环境搭建(EclipseMyEclipse + Maven)
  • 原文地址:https://www.cnblogs.com/JJBox/p/12156778.html
Copyright © 2011-2022 走看看