【发布时间】:2010-11-21 21:01:59
【问题描述】:
我想索引我所有的音乐文件并将它们存储在数据库中。 我有这个函数,我从音乐驱动器的根目录开始调用它。
即
start > ReadFiles(C:\music\);
ReadFiles(path){
foreach(file)
save to index;
foreach(directory)
ReadFiles(directory);
}
这很好用,但是在运行程序时,使用的内存量会不断增长,最后我的系统内存不足。
有没有人有更好的方法,不需要 4GB 的 RAM 来完成这项任务?
最好的问候,泰斯
【问题讨论】:
-
请贴出实际代码。你的方法根本没有问题。
-
递归不受可用内存的限制,而是受堆栈大小的限制,所以如果你的内存用完了,听起来你持有数据的时间太长了。
-
我无法想象你有足够的音乐来占用这么大的空间。您确定您没有遇到堆栈溢出或在某个时间点进入了无限循环吗?
-
解释“保存到索引”。它实际上是否将文件中的所有字节存储在正在运行的程序中的磁盘上?
标签: c# recursion out-of-memory fileinfo