예제 #1
0
        internal static FileRecord Get(string path, bool fast)
        {
            string     volume = Helper.GetVolumeFromPath(path);
            IndexEntry entry  = IndexEntry.Get(path);

            return(Get(volume, (int)entry.RecordNumber, fast));
        }
예제 #2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="path"></param>
        /// <returns></returns>
        public static byte[] GetRecordBytes(string path)
        {
            string     volume = Helper.GetVolumeFromPath(path);
            IndexEntry entry  = IndexEntry.Get(path);

            return(GetRecordBytesPrivate(volume, (int)entry.RecordNumber));
        }
예제 #3
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="path"></param>
        /// <param name="cluster"></param>
        /// <returns></returns>
        public static Bitmap GetByPath(string path, long cluster)
        {
            string     volume = Helper.GetVolumeFromPath(path);
            IndexEntry entry  = IndexEntry.Get(path);

            return(Get(volume, (int)entry.RecordNumber, cluster));
        }
예제 #4
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="path"></param>
        /// <returns></returns>
        public static UsnJrnl[] GetInstancesByPath(string path)
        {
            string     volume = Helper.GetVolumeFromPath(path);
            IndexEntry entry  = IndexEntry.Get(path);

            return(GetInstances(volume, (int)entry.RecordNumber));
        }
예제 #5
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="volume"></param>
        /// <returns></returns>
        public static UsnJrnl[] GetInstances(string volume)
        {
            Helper.getVolumeName(ref volume);
            IndexEntry entry = IndexEntry.Get(Helper.GetVolumeLetter(volume) + @"\$Extend\$UsnJrnl");

            return(GetInstances(volume, (int)entry.RecordNumber));
        }
예제 #6
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="path"></param>
        /// <param name="usn"></param>
        /// <returns></returns>
        public static UsnJrnl GetByPath(string path, long usn)
        {
            string     volume = Helper.GetVolumeFromPath(path);
            IndexEntry entry  = IndexEntry.Get(path);

            return(Get(volume, (int)entry.RecordNumber, usn));
        }
예제 #7
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="path"></param>
        /// <returns></returns>
        public static Bitmap[] GetInstancesByPath(string path)
        {
            // Get Volume string from specified path
            string volume = Helper.GetVolumeFromPath(path);

            // Determine Record Number for specified file
            IndexEntry entry = IndexEntry.Get(path);

            // Get the proper data stream from the FileRecord
            NonResident dataStream = Bitmap.GetDataStream(FileRecord.Get(volume, MftIndex.BITMAP_INDEX, true));

            // Call GetInstances to return all associated Bitmap Values
            return(GetInstances(dataStream.GetBytes()));
        }