Unity 使用Advanced InI Parser .Open()时读取到不存在文件路径相关问题

发布时间 2023-06-27 00:04:46作者: 锤子猫

  在使用Advanced INI Parser插件用来读写配置文件时,如果在使用插件对象的Open()方法读取不存在的文件路径时会自动创建相应的文件但是这里需要注意的是插件的Open()执行的操作是:判断文件是否存在=》若存在正常打开;若不存在则创建然后关闭文件流。请注意,这里是创建后关闭,所以,如果打开的路径不存在,那么Open()之后并不能读写,需要再Open()一次。

  进行尝试过:写两次Open()就可以,不过这样看起来似乎不是很对劲,所以最好是先使用File.Exists()来判断一下文件是否存在,如果没有就使用File.Create().Close()创建一下相应文件,(至于为什么File.Create()之后还需要Close()呢,因为文件创建完不关闭,其文件流是始终被占用的,除非使用文件流直接操作,否则使用插件再尝试打开文件是会出现问题的)然后在确保文件存在的情况下再使用Advanced INI Parser插件的Open()方法打开然后进行读写操作。

  最后,还需要注意一下,如果文件路径中包含不存在的文件夹的话,File.Create()是没有办法创建文件夹的,它只能创建文件,需要使用Directory.Exists()判断目录是否存在(如果没有,它会创建),另外最好把文件路径和文件分成两段string变量来处理,以 防止误操作把文件也创建成目录,这样读写文件操作自然也不会成功。

 

以下是Open()方法封装的File相关操作,可以看到判断文件不存在后执行创建相应文件然后就关闭了。