Powerbuilder 12.5 ini文件中的文件存在在存在的文件上返回false

时间:2016-07-08 14:30:14

标签: powerbuilder file-exists

我有一个FileExists检查PB 12.5中Profile.ini文件的窗口打开事件。 (Windows 7)然后我使用ProfileString调用从文件中读取一些参数。 (也在open事件中)但是如果我打开窗口并检索一些数据然后关闭窗口,当我重新打开窗口时,FileExists现在为我的ini文件返回false。我怀疑应用程序仍然连接到文件,导致FileExists在打开时返回false。在填充我的变量后,有没有办法释放文件?

由于

3 个答案:

答案 0 :(得分:0)

像“ProfileString”这样的INI函数会自动打开和关闭ini文件。你有没有在ini文件中使用“FileOpen”?如果是这样,您需要执行“FileClose”。

答案 1 :(得分:0)

我认为可能发生的事情是您的应用程序的工作目录正在发生变化。例如,如果您让用户保存或打开文件并选择其他目录,则应用程序的工作目录将会更改。

解决此问题的一种方法是确保包含INI文件的文件夹位于路径中。我不建议这样做,因为它只是另一件可以配置错误的东西。更好的方法是在应用程序的open脚本或初始窗口的启动代码或应用程序管理器中调用GetCurrentDirectory(如果您正在使用)。如果您正在使用应用程序管理器,则将目录存储在实例变量中。否则全局变量将起作用。然后,您可以使用此保存的目录以完整路径名引用INI文件。

答案 2 :(得分:0)

对于ini文件使用ProfileString,因为您不必使用Fileopen打开文件......

示例:

的Settings.ini

[SETTINGS]
Parameter1=Value1
Parameter2=Value2

PB中的用法

string ls_parameter
ls_parameter = ProfileString('settings.ini', 'SETTINGS', 'Parameter1', 'none')

将返回Value1

string ls_parameter
ls_parameter = ProfileString('settings.ini', 'SETTINGS', 'Parameter3', 'none')

将返回none,因为settings.ini文件中不存在参数