internal void SetDirectoryEntryMetadataValue(FatDirectoryEntryMetadata aEntryMetadata, long aValue) { //Global.mFileSystemDebugger.SendInternal("-- FatDirectoryEntry.SetDirectoryEntryMetadataValue(ulong) --"); //Global.mFileSystemDebugger.SendInternal("aValue ="); //Global.mFileSystemDebugger.SendInternal(aValue); if (mParent != null) { var xData = ((FatDirectoryEntry)mParent).GetDirectoryEntryData(); if (xData.Length > 0) { var xValue = new byte[aEntryMetadata.DataLength]; xValue.SetUInt32(0, (uint)aValue); uint offset = mEntryHeaderDataOffset + aEntryMetadata.DataOffset; //Global.mFileSystemDebugger.SendInternal("offset ="); //Global.mFileSystemDebugger.SendInternal(offset); Array.Copy(xValue, 0, xData, offset, aEntryMetadata.DataLength); ((FatDirectoryEntry)mParent).SetDirectoryEntryData(xData); } } else { throw new Exception("Root directory metadata can not be changed using the file stream."); } }
internal void SetDirectoryEntryMetadataValue(FatDirectoryEntryMetadata aEntryMetadata, string aValue) { //Global.mFileSystemDebugger.SendInternal("-- FatDirectoryEntry.SetDirectoryEntryMetadataValue(string) --"); //Global.mFileSystemDebugger.SendInternal("aValue ="); //Global.mFileSystemDebugger.SendInternal(aValue); var xData = ((FatDirectoryEntry)mParent).GetDirectoryEntryData(); if (xData.Length > 0) { var xValue = new byte[aEntryMetadata.DataLength]; xValue = aValue.GetUtf8Bytes(0, aEntryMetadata.DataLength); uint offset = mEntryHeaderDataOffset + aEntryMetadata.DataOffset; Array.Copy(xValue, 0, xData, offset, aEntryMetadata.DataLength); ((FatDirectoryEntry)mParent).SetDirectoryEntryData(xData); } }