在 Rust 中关闭存储在 Map 中的文件
Close File stored in Map in Rust
我将打开的文件存储在地图中:HashMap<u32, File>
。有时会调用函数 read_to_file
和 write_to_file
。他们从地图中获取文件并进行相应的处理。为了避免对同一个文件的写入和读取冲突,我需要关闭文件。我该怎么做?
根据 Rust documentation std::fs::File
是:
A reference to an open file on the filesystem.
如果您将 File
存储在地图中,那么根据定义,它们是开放的。当变量被删除(超出范围)时,它们会自动关闭。
相反,您可以考虑在地图中存储一个 Path
,然后按需打开文件。如果出于某种原因需要存储打开的文件,则可以将它们包装在 Arc<Mutex>
中(如果您的应用程序是单线程的,则可以将它们包装在 `Rc 中),以防止同时访问。
我将打开的文件存储在地图中:HashMap<u32, File>
。有时会调用函数 read_to_file
和 write_to_file
。他们从地图中获取文件并进行相应的处理。为了避免对同一个文件的写入和读取冲突,我需要关闭文件。我该怎么做?
根据 Rust documentation std::fs::File
是:
A reference to an open file on the filesystem.
如果您将 File
存储在地图中,那么根据定义,它们是开放的。当变量被删除(超出范围)时,它们会自动关闭。
相反,您可以考虑在地图中存储一个 Path
,然后按需打开文件。如果出于某种原因需要存储打开的文件,则可以将它们包装在 Arc<Mutex>
中(如果您的应用程序是单线程的,则可以将它们包装在 `Rc 中),以防止同时访问。