在C#中压缩access MDB文件 (转载)

需要在工程中引用COM组件: Microsoft Jet and Replication Objects Library ,示例请参考下面的函数:

public static bool CompactJetDatabase(string fileName)
        {
            // I use this function as part of an AJAX page, so rather than throwing
            // exceptions if errors are encountered, I simply return false and allow the page
            // to handle the failure generically.
            try
            {
                if (fileName.Equals(""))
                    return false;

                string oldFileName = fileName;

                // 创建一个生成后的临时文件
                string newFileName = Path.Combine(Path.GetDirectoryName(oldFileName), Guid.NewGuid().ToString("N") + ".mdb");

                // 创建压缩类
                JetEngineClass engine = new JetEngineClass();
                            // 压缩MDB为新的文件
                engine.CompactDatabase(
                 String.Format(AccessOleDbConnectionStringFormat, oldFileName),
                 String.Format(AccessOleDbConnectionStringFormat, newFileName));

                // 删除旧文件
                File.Delete(oldFileName);

                // 改名为旧文件名.
                File.Move(newFileName, oldFileName);

                return true;
            }
            catch (Exception ex)
            {

                return false;
            }
        }


原文出处:
http://www.codeproject.com/useritems/CompactAndRepair.asp

posted @ 2007-03-22 09:50  margiex  阅读(1203)  评论(0编辑  收藏  举报