如何检查Haxe中的可用空闲空间



我找不到一种方法来检查使用Haxe, Openfl, Lime或其他库的设备中的可用空闲空间。我希望避免下载的数据超过每个设备中应用程序的推荐大小。你怎么检查呢?

试着创建一个这么大的文件!然后删除它或重新打开并在其内容上写入(而不是追加)。

我不知道Haxe支持的所有平台是否都能很好地使用这个技巧,但据报道,这个算法在许多地方和语言中都能工作(我个人在Ruby中测试了它,并在c++/. net中看到了同样的建议)。检查X字节的磁盘空间是否可用:

  • open写入
  • 的新文件
  • seek开头X-1字节
  • write一个字节的数据(无论你想,0, 42…)
  • close文件(可能与手头的任务无关,但无论如何不要忘记这样做)

如果磁盘空间不足,您可能会在此算法的某个点上遇到异常。你必须找出可能出现的错误,并适当地处理它们。

使用ihx我发现这是工作的,只需要Haxe标准库:

haxe interactive shell v0.3.4
type "help" for help
>> import sys.io.*; 
>> var f = File.write('loca', true) 
sys.io.FileOutput : { __f => #abstract }
>> f.seek(39999, FileSeek.SeekBegin) 
Void : null
>> f.writeByte(0) 
Void : null
>> f.close() 
Void : null

经过这些操作后,在我的工作目录中有一个名为loca的文件,大小正好为40000字节。

顺便说一下,在ihx中做这些事情时要小心,因为它每次都会重新运行整个会话并附加最后输入的行。

正在进行的实验:

但是,当磁盘空间不足时,它可能不会因为错误而失败。在这种情况下,您必须使用sys.FileSystem.stat(path).size检查实际尺寸。如果没有足够的空间,不要忘记删除文件。

相关内容

  • 没有找到相关文章

最新更新