From: <ga...@us...> - 2013-02-20 11:56:11
|
Revision: 5967 http://jnode.svn.sourceforge.net/jnode/?rev=5967&view=rev Author: galatnm Date: 2013-02-20 11:56:05 +0000 (Wed, 20 Feb 2013) Log Message: ----------- Use the size of the unnamed $DATA attribute when getting NTFS file size. (Luke Quinane) Modified Paths: -------------- trunk/fs/src/fs/org/jnode/fs/ntfs/NTFSFile.java Modified: trunk/fs/src/fs/org/jnode/fs/ntfs/NTFSFile.java =================================================================== --- trunk/fs/src/fs/org/jnode/fs/ntfs/NTFSFile.java 2013-02-20 11:55:37 UTC (rev 5966) +++ trunk/fs/src/fs/org/jnode/fs/ntfs/NTFSFile.java 2013-02-20 11:56:05 UTC (rev 5967) @@ -58,7 +58,18 @@ } public long getLength() { - return indexEntry.getRealFileSize(); + FileRecord.AttributeIterator attributes = getFileRecord().findAttributesByTypeAndName(NTFSAttribute.Types.DATA, null); + NTFSAttribute attribute = attributes.next(); + + if (attribute == null) { + return indexEntry.getRealFileSize(); + } + + if (attribute.isResident()) { + return ((NTFSResidentAttribute) attribute).getAttributeLength(); + } else { + return ((NTFSNonResidentAttribute) attribute).getAttributeActualSize(); + } } /* This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |