Feedback

C# - File Container

Veröffentlicht von am 4/16/2010
(1 Bewertungen)
Mit dieser Klasse lässt sich eine Datei in ein Objekt speichern und somit in den Arbeitsspeicher verlagern.
Inklusive einer Save()-Methode, um die Datei wieder auf der Festplatte zu speichern.
Ein typisches Einsatzgebiet ist beispielsweise im Netzwerkbereich, um auf eine einfache Art eine Datei zu übertragen.
using System;
using System.IO;

namespace FileContainer
{
    /// <summary>
    /// Beinhaltet eine komplette Datei.
    /// </summary>
    public class FileContainer
    {
        #region variables
        private FileInfo mInfo;
        private Byte[] mBinary;
        #endregion

        #region properties
        /// <summary>
        /// Dateiinformationen
        /// </summary>
        public FileInfo Info
        {
            get { return mInfo; }
        }
        /// <summary>
        /// Datei in Form von Bytes
        /// </summary>
        public Byte[] Binary
        {
            get { return mBinary; }
        }
        #endregion

        #region ctor
        /// <summary>
        /// Initialisiert ein neues Objekt einer Datei.
        /// </summary>
        /// <param name="path">Relative oder absolute Dateipfad</param>
        public FileContainer(string path)
        {
            if (File.Exists(path))
            {
                mInfo = new FileInfo(path);

                using (FileStream stream = mInfo.Open(FileMode.Open))
                {
                    mBinary = new Byte[mInfo.Length];
                    stream.Read(mBinary, 0, (int)mInfo.Length);
                }
            }
        }
        #endregion

        #region methods
        /// <summary>
        /// Speichert das Objekt in eine Datei.
        /// </summary>
        /// <param name="target">Zielpfad</param>
        public void Save(string target)
        {
            using (FileStream stream = File.Open(target, FileMode.OpenOrCreate, FileAccess.Write))
            {
                stream.Write(mBinary, 0, mBinary.Length);
            }
        }
        #endregion
    }
}

1 Kommentare zum Snippet

hackman schrieb am 4/16/2010:
nette idee,
allerdings wird beim zurückspeichern die fileinfo gar nicht weiterverwendet
 

Logge dich ein, um hier zu kommentieren!