开发中有时会遇到要对文件进行共享状态的读写操作,代码如下:

 

View Code
using System.IO;
using System.Text;

namespace LucienBao.Commons
{
    public static class FileHelper
    {
        public static string ShareRead(string file, Encoding encoding)
        {
            string content = string.Empty;
            FileStream fs = new FileStream(file, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
            try
            {
                if (fs.CanRead)
                {
                    byte[] buffer = new byte[fs.Length];
                    fs.Read(buffer, 0, buffer.Length);
                    content = encoding.GetString(buffer);
                }
            }
            finally
            {
                fs.Close();
                fs.Dispose();
            }

            return content;
        }


        public static void ShareAppend(string content, string file, Encoding encoding)
        {
            ShareWrite(content, file, encoding, FileMode.Append);
        }

        public static void ShareWrite(string content, string file, Encoding encoding, FileMode fileMode)
        {
            FileStream fs = new FileStream(file, fileMode, FileAccess.Write, FileShare.Read);
            try
            {
                if (fs.CanWrite)
                {
                    byte[] buffer = encoding.GetBytes(content);
                    if (buffer.Length > 0)
                    {
                        fs.Write(buffer, 0, buffer.Length);
                        fs.Flush();
                    }
                }
            }
            finally
            {
                fs.Close();
                fs.Dispose();
            }
        }

    }
}

 

 posted on 2012-04-20 15:02  Lucien.Bao  阅读(237)  评论(0编辑  收藏  举报