加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 读取,写入,追加,删除内存映射文件

发布时间:2020-12-15 21:31:18 所属栏目:百科 来源:网络整理
导读:在我的 Windows应用程序中,我想使用内存映射文件.网上有各种文章/博客,它们有足够的信息来创建内存映射文件.我正在创建2个内存映射文件,现在我想对这些文件执行一些操作,比如阅读其内容,在其中添加一些内容,从中删除一些内容.所有这些网上可能有更多的信息,
在我的 Windows应用程序中,我想使用内存映射文件.网上有各种文章/博客,它们有足够的信息来创建内存映射文件.我正在创建2个内存映射文件,现在我想对这些文件执行一些操作,比如阅读其内容,在其中添加一些内容,从中删除一些内容.所有这些网上可能有更多的信息,但不幸的是我找不到任何东西.
下面是我用来编写内存映射文件的函数.

// Stores the path to the selected folder in the memory mapped file
        public void CreateMMFFile(string folderName,MemoryMappedFile mmf,string fileName)
        {
            // Lock
            bool mutexCreated;
            Mutex mutex = new Mutex(true,fileName,out mutexCreated);
            try
            {
                using (MemoryMappedViewStream stream = mmf.CreateViewStream())
                {
                    using (StreamWriter writer = new StreamWriter(stream,System.Text.Encoding.Unicode))
                    {
                        try
                        {
                            string[] files = System.IO.Directory.GetFiles(folderName,"*.*",System.IO.SearchOption.AllDirectories);
                            foreach (string str in files)
                            {
                                writer.WriteLine(str);
                            }
                        }
                        catch (Exception ex)
                        {
                            Debug.WriteLine("Unable to write string. " + ex);
                        }
                        finally
                        {
                            mutex.ReleaseMutex();
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Debug.WriteLine("Unable to monitor memory file. " + ex);
            }
        }

如果有人可以帮助我,那将非常感激.

解决方法

我认为您正在寻找的类是 MemoryMappedViewAccessor.它提供了读取和写入内存映射文件的方法.删除只不过是一系列精心编排的写作.

它可以使用CreateViewAccessor方法从MemoryMappedFile类创建.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读