Ejemplo n.º 1
0
 internal void UpdateDirectoryIndex(MftSegmentReference parentDirectory, List <FileNameRecord> fileNameRecords)
 {
     lock (m_mftLock)
     {
         FileRecord parentDirectoryRecord = GetFileRecord(parentDirectory);
         IndexData  parentDirectoryIndex  = new IndexData(this, parentDirectoryRecord, AttributeType.FileName);
         foreach (FileNameRecord fileNameRecord in fileNameRecords)
         {
             parentDirectoryIndex.UpdateFileNameRecord(fileNameRecord);
         }
     }
 }
Ejemplo n.º 2
0
        private void UpdateFileNameRecords()
        {
            List <FileNameRecord> fileNameRecords = m_fileRecord.FileNameRecords;

            foreach (FileNameRecord fileNameRecord in fileNameRecords)
            {
                fileNameRecord.AllocatedLength = this.Data.AllocatedLength;
                fileNameRecord.FileSize        = this.Data.Length;
            }
            m_volume.UpdateFileRecord(m_fileRecord);

            // Update directory index
            MftSegmentReference parentDirectory       = m_fileRecord.ParentDirectoryReference;
            FileRecord          parentDirectoryRecord = m_volume.GetFileRecord(parentDirectory);
            IndexData           parentDirectoryIndex  = new IndexData(m_volume, parentDirectoryRecord, AttributeType.FileName);

            foreach (FileNameRecord fileNameRecord in fileNameRecords)
            {
                parentDirectoryIndex.UpdateFileNameRecord(fileNameRecord);
            }
        }