- 主题:为啥会出现这种情况?小文件变得异常大,占用空间却很小
我win10桌面上的一个文件夹,里面有一些小文件,每个从几百K到几十M吧,突然发现其中一些文件大小变成1-3G,更占用空间却还是很小(几K),文件无法正常打开,拷贝时很慢,象真是拷几G的文件那样。
这是啥情况呢?请教大神!
--
FROM 221.223.85.*
磁盘/文件系统数据损坏了?
磁盘扫描检查一下先
【 在 Gernett (森林狼) 的大作中提到: 】
: [upload=1][/upload]
: 我win10桌面上的一个文件夹,里面有一些小文件,每个从几百K到几十M吧,突然发现其中一些文件大小变成1-3G,更占用空间却还是很小(几K),文件无法正常打开,拷贝时很慢,象真是拷几G的文件那样。
: 这是啥情况呢?请教大神!
: ...................
--
修改:oldwatch FROM 180.169.205.*
FROM 180.169.205.*
文件夹是在C盘,扫描过,碎片整理过,还是那样啊
【 在 oldwatch 的大作中提到: 】
: 磁盘/文件系统数据损坏了?
: 磁盘扫描检查一下先
:
--
FROM 221.223.85.*
如果一个文件的大部分数据是0,则这个文件被称包含了稀疏数据集。 文件压缩可以有效率地表示稀疏文件,但压缩与解压会带来时间代价。 NTFS文件系统支持稀疏文件表示,并对文件的读写操作透明。
为确定文件系统是否支持稀疏文件,调用GetVolumeInformation函数,使用lpFileSystemFlags参数,检查返回结果对应于FILE_SUPPORTS_SPARSE_FILES比特标志。 DWORD dwFileSystemFlags = 0; BOOL bOk = GetVolumeInformation("C:\\", NULL, 0, NULL, NULL, &dwFileSystemFlags, NULL, 0); bOk = dwFileSystemFlags&FILE_SUPPORTS_SPARSE_FILES; 判断一个文件是否是稀疏文件:GetFileInformationByHandle
大部分文件,在改变它的EndOfFile的时候,中间的空白会被操作系统填0,也就是说,如果用SetFilePointer和SetEndOfFile来产生一个很大的文件,那么这个文件它占用的是真正的磁盘空间,即使里面全是0,系统默认的也会在DeviceIoControl()中的ControlCode里用FSCTL_SET_ZERO_DATA标记,这个标记使得那些文件空洞被0所填充。为了节省磁盘空间,必须把一个文件声明为稀疏文件,以便让系统把那些无用的0字节压缩,并释放相应的磁盘空间,这需要用DeviceIoControl()将标记改为FSCTL_SET_SPARSE。
【 在 Gernett (森林狼) 的大作中提到: 】
[upload=1][/upload]
我win10桌面上的一个文件夹,里面有一些小文件,每个从几百K到几十M吧,突然发现其中一些文件大小变成1-3G,更占用空间却还是很小(几K),文件无法正常打开,拷贝时很慢,象真是拷几G的文件那样。
这是啥情况呢?请教大神!
--
FROM 117.62.197.*
如果文件系统没问题,且分区格式是NTFS,那么有可能是稀疏文件
【 在 Gernett (森林狼) 的大作中提到: 】
: [upload=1][/upload]
: 我win10桌面上的一个文件夹,里面有一些小文件,每个从几百K到几十M吧,突然发现其中一些文件大小变成1-3G,更占用空间却还是很小(几K),文件无法正常打开,拷贝时很慢,象真是拷几G的文件那样。
: 这是啥情况呢?请教大神!
: ...................
--
FROM 123.118.100.*
是NTFS格式,我这些都是录音文件,m4a格式,会是稀疏文件吗?
有修复的方法吗?
【 在 zkr 的大作中提到: 】
: 如果文件系统没问题,且分区格式是NTFS,那么有可能是稀疏文件
:
--
FROM 221.223.85.*
复制过来的文件,稀疏的概率不高
如果能正常播放之类的,可以尝试ffmpeg之类的工具dump一下
【 在 Gernett (森林狼) 的大作中提到: 】
: 是NTFS格式,我这些都是录音文件,m4a格式,会是稀疏文件吗?
: 有修复的方法吗?
--
FROM 123.118.100.*
这些文件都是从手机复制出来的。
变大的文件已经不能正常播放,说是不能识别的格式。。。
【 在 zkr 的大作中提到: 】
: 复制过来的文件,稀疏的概率不高
: 如果能正常播放之类的,可以尝试ffmpeg之类的工具dump一下
:
--
FROM 221.223.85.*