gpt4 book ai didi

c# - "File Number"到底是什么?

转载 作者:太空狗 更新时间:2023-10-29 21:04:48 25 4
gpt4 key购买 nike

我正在使用一些早先从 VB6 转换过来的 C# 代码,它执行大量文件 I-O。我到处都看到这个:

  fn = VBNET.FileSystem.FreeFile();

...之后是 VBNET.FileSystem.FileOpen(),一些文件 I-O,然后是 VBNET.FileSystem.FileClose()

调用 FreeFile() 会生成一个“文件编号”,这是打开文件所必需的。但是什么是文件号,用完后如何将其释放回系统?

文档位于 http://msdn.microsoft.com/en-us/library/microsoft.visualbasic.filesystem.freefile.aspx似乎没有说,但它确实说如果“超过 255 个文件正在使用”将抛出异常,这对我来说意味着在我完成它们时释放它们是个好主意。

N.B. - 我知道有更好的文件 IO 库可以使用,但这是我们一直坚持的,直到我们有资源重写这些东西,所以我只想了解它。

最佳答案

那些 VB6 命令(FreeFile、FileOpen、FileClose、LOF 等)至少早在 QBasic 就存在了。我希望文件号最初是一个 MS-DOS 文件句柄。

Google 快速搜索得出以下链接:

回到 QBasic(如果没记错的话),FileOpen 命令打开文件并保留文件句柄。 FileClose 命令关闭文件并释放句柄。

FreeFile 只是一种获取未使用文件句柄的便捷方法:如果您知道您没有(例如)文件 #1 打开,那么您可以调用 OPEN "C:\DOS\RUN"FOR INPUT AS #1 而不是调用 FreeFile。您仍会使用 CLOSE #1

关闭它

我不记得在 VB6 中是否发生了变化。正如 Hans Passant 提到的,在 .NET 内部,文件号现在只是 VB6File 对象数组的索引。 FileSystem.vb

关于c# - "File Number"到底是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22847177/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com