fileExists: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
m (Text replacement - "\| *((\[\[[a-zA-Z0-9_ |()]+\]\],? ?)+) * \}\}" to "|seealso= $1 }}")
m (Text replacement - "{{Feature|Informative|" to "{{Feature|informative|")
 
(18 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{RV|type=command
{{RV|type=command


| arma3dev
|game1= arma3
|version1= 2.02


|2.01
|gr1= Program Flow


|gr1= Program Flow
|descr= Checks if file on given path exists. Uses same path resolve code as [[loadFile]].
{{Feature|informative|Absolute paths are not supported, such as those generated using [[getMissionPath]]. Attempting to check an absolute path will result in this error in [[RPT]] logs:
{{hl|Invalid path (only relative paths supported): 'C:\...'}}
}}


| Checks if file on given path exists. Uses same path resolve code as [[loadFile]].
|s1= [[fileExists]] path


| [[fileExists]] path
|p1= path: [[String]] - path to file


|p1= path: [[String]] - Path to file
|r1= [[Boolean]] - [[true]] if it exists, otherwise [[false]]


| [[Boolean]] - [[true]] if it exists, otherwise [[false]]
|x1= <sqf>fileExists "\a3\mySuperPath\bestFileEver.paa"; // returns false</sqf>
 
|x1= <code>[[fileExists]] "\a3\mySuperPath\bestFileEver.paa"; {{cc|Returns [[false]]}}</code>


|x2= <code>[[private]] _path [[a = b|=]] "a3\functions_f_mp_mark\revive\_addaction_revive.inc";
|x2= <sqf>
private _path = "a3\functions_f_mp_mark\revive\_addaction_revive.inc";
if (fileExists _path) then { loadFile _path } else { diag_log format ["File (%1) does not exist!", _path] };
</sqf>


[[if]] ([[fileExists]] _path) [[then]] {[[loadFile]] _path} [[else]] {[[diag_log]] [[format]] ["File (%1) does not exist!",_path]};</code>
|x3= <sqf>
// Sometimes it might be better to check if a file exists instead of checking if path is empty ("")
private _class = "ModuleObjectiveRaceFinish_F";
private _picture = getText (configFile >> "CfgVehicles" >> _class >> "editorPreview");
if !(fileExists _picture) then { _picture = getText (configFile >> "CfgVehicles" >> _class >> "portrait") };
if !(fileExists _picture) then { _picture = getText (configFile >> "CfgVehicles" >> _class >> "icon") };
if !(fileExists _picture) then { _picture = getText (configFile >> "CfgVehicles" >> _class >> "picture") };
if !(fileExists _picture) then { systemChat "No valid picture found!" } else { systemChat _picture };
</sqf>


|seealso= [[loadFile]] [[preprocessFile]] [[preprocessFileLineNumbers]]
|seealso= [[loadFile]] [[preprocessFile]] [[preprocessFileLineNumbers]]
}}
{{Note
|user= Leopard20
|timestamp= 20220101162930
|text= Returns [[true]] for empty strings: <sqf inline>fileExists ""; // true</sqf>
}}
}}

Latest revision as of 00:24, 2 February 2024

Hover & click on the images for description

Description

Description:
Checks if file on given path exists. Uses same path resolve code as loadFile.
Absolute paths are not supported, such as those generated using getMissionPath. Attempting to check an absolute path will result in this error in RPT logs: Invalid path (only relative paths supported): 'C:\...'
Groups:
Program Flow

Syntax

Syntax:
fileExists path
Parameters:
path: String - path to file
Return Value:
Boolean - true if it exists, otherwise false

Examples

Example 1:
fileExists "\a3\mySuperPath\bestFileEver.paa"; // returns false
Example 2:
private _path = "a3\functions_f_mp_mark\revive\_addaction_revive.inc"; if (fileExists _path) then { loadFile _path } else { diag_log format ["File (%1) does not exist!", _path] };
Example 3:
// Sometimes it might be better to check if a file exists instead of checking if path is empty ("") private _class = "ModuleObjectiveRaceFinish_F"; private _picture = getText (configFile >> "CfgVehicles" >> _class >> "editorPreview"); if !(fileExists _picture) then { _picture = getText (configFile >> "CfgVehicles" >> _class >> "portrait") }; if !(fileExists _picture) then { _picture = getText (configFile >> "CfgVehicles" >> _class >> "icon") }; if !(fileExists _picture) then { _picture = getText (configFile >> "CfgVehicles" >> _class >> "picture") }; if !(fileExists _picture) then { systemChat "No valid picture found!" } else { systemChat _picture };

Additional Information

See also:
loadFile preprocessFile preprocessFileLineNumbers

Notes

Report bugs on the Feedback Tracker and/or discuss them on the Arma Discord or on the Forums.
Only post proven facts here! Add Note
Leopard20 - c
Posted on Jan 01, 2022 - 16:29 (UTC)
Returns true for empty strings: fileExists ""; // true