如何查看Haxe的可用空间?

时间:2015-09-26 11:37:36

标签: haxe openfl lime

我找不到使用Haxe,Openfl,Lime或其他库检查设备中可用空间的方法。 我想避免下载超过每台设备中应用推荐尺寸的数据。 你怎么做才能检查?

1 个答案:

答案 0 :(得分:-1)

尝试创建该大小的文件!然后删除它或重新打开并写入(不附加)其内容。

我不知道Haxe支持的所有平台是否都可以正常使用这个技巧,但据报道这种算法可以在许多地方和语言中运行(我亲自在Ruby中测试过并看过the same suggestion for C++/.NET)。检查X字节的磁盘空间是否可用:

  • open一个新的写作文件
  • seek从头开始的X-1个字节
  • write一个字节的数据(无论您想要什么,042 ...)
  • 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检查实际尺寸。如果没有足够的空间,请不要忘记删除文件。