Description
Use the GetRelativePath
method to convert the fully qualified path specified by the AbsoluteFileName parameter to a relative path calculated against the folder specified by the CurrentFolder parameter.
Declaration
aqFileSystem.GetRelativePath(CurrentFolder, AbsoluteFileName)
CurrentFolder | [in] | Required | String | |
AbsoluteFileName | [in] | Required | String | |
Result | String |
Applies To
The method is applied to the following object:
Parameters
The method has the following parameters:
CurrentFolder
Specifies the fully qualified name of the folder to which the resulting path name should be relative.
The Path parameter may or may not include a trailing backslash (\).
You can add a trailing backslash to or remove it from the path by using the IncludeTrailingBackSlash
or ExcludeTrailingBackSlash
method.
AbsoluteFileName
Specifies the absolute path (either to a file or to a folder) that should be transformed to a relative path.
Result Value
A string that holds the path to the file or folder specified by the AbsoluteFileName parameter relative to CurrentFolder.
Example
The code below specifies the current folder and the fully qualified name of a file, obtains the file's path which is relative to the current folder, and posts this path to the test log.
JavaScript
{
// Specify the fully qualified file name
let sFileName = "C:\\Folder1\\FileName.txt";
// Specify the current folder
let sCurrentFolder = "C:\\Folder2\\";
// Get the file's relative path
let sRelPath = aqFileSystem.GetRelativePath(sCurrentFolder, sFileName);
// Post the relative path to the test log
Log.Message(sRelPath);
}
JScript
{
// Specify the fully qualified file name
var sFileName = "C:\\Folder1\\FileName.txt";
// Specify the current folder
var sCurrentFolder = "C:\\Folder2\\";
// Get the file's relative path
var sRelPath = aqFileSystem.GetRelativePath(sCurrentFolder, sFileName);
// Post the relative path to the test log
Log.Message(sRelPath);
}
Python
def GetRelativePathExample1():
# Specify the fully qualified file name
sFileName = "C:\\Folder1\\FileName.txt"
# Specify the current folder
sCurrentFolder = "C:\\Folder2\\"
# Get the file's relative path
sRelPath = aqFileSystem.GetRelativePath(sCurrentFolder, sFileName)
# Post the relative path to the test log
Log.Message(sRelPath)
VBScript
Sub GetRelativePathExample1()
' Specify the fully qualified file name
sFileName = "C:\Folder1\FileName.txt"
' Specify the current folder
sCurrentFolder = "C:\Folder2\"
' Get the file's relative path
sRelPath = aqFileSystem.GetRelativePath(sCurrentFolder, sFileName)
' Post the relative path to the test log
Log.Message(sRelPath)
End Sub
DelphiScript
procedure GetRelativePathExample1();
var sFileName, sCurrentFolder, sRelPath;
begin
// Specify the fully qualified file name
sFileName := 'C:\Folder1\FileName.txt';
// Specify the current folder
sCurrentFolder := 'C:\Folder2\';
// Get the file's relative path
sRelPath := aqFileSystem.GetRelativePath(sCurrentFolder, sFileName);
// Post the relative path to the test log
Log.Message(sRelPath);
end;
C++Script, C#Script
function GetRelativePathExample1()
{
// Specify the fully qualified file name
var sFileName = "C:\\Folder1\\FileName.txt";
// Specify the current folder
var sCurrentFolder = "C:\\Folder2\\";
// Get the file's relative path
var sRelPath = aqFileSystem["GetRelativePath"](sCurrentFolder, sFileName);
// Post the relative path to the test log
Log["Message"](sRelPath);
}
The code below gets the project’s current folder and the fully qualified name of the Notepad executable file, gets the executable file name relative to the project’s folder, and uses that path to add the Notepad to the list of tested applications.
For this routine to run, you project must have the TestedApps collection.
JavaScript
function GetRelativePathExample2()
{
// Specify the fully qualified file name
let sFileName = "C:\\Windows\\System32\\notepad.exe";
// Specify the current folder
let sCurrentFolder = Project.Path + "TestedApps";
// Get the file's relative path
let sRelPath = aqFileSystem.GetRelativePath(sCurrentFolder, sFileName);
// Add the Notepad to the list of tested applications by using its relative path
TestedApps.Add(sRelPath);
}
JScript
function GetRelativePathExample2()
{
// Specify the fully qualified file name
var sFileName = "C:\\Windows\\System32\\notepad.exe";
// Specify the current folder
var sCurrentFolder = Project.Path + "TestedApps";
// Get the file's relative path
var sRelPath = aqFileSystem.GetRelativePath(sCurrentFolder, sFileName);
// Add the Notepad to the list of tested applications by using its relative path
TestedApps.Add(sRelPath);
}
Python
# For this routine to run, you project must have the TestedApps collection
def GetRelativePathExample2():
# Specify the fully qualified file name
sFileName = "C:\\Windows\\System32\\notepad.exe"
# Specify the current folder
sCurrentFolder = Project.Path + "TestedApps"
# Get the file's relative path
sRelPath = aqFileSystem.GetRelativePath(sCurrentFolder, sFileName)
# Add the Notepad to the list of tested applications by using its relative path
TestedApps.Add(sRelPath)
VBScript
' For this routine to run, you project must have the TestedApps collection
Sub GetRelativePathExample2()
' Specify the fully qualified file name
sFileName = "C:\\Windows\\System32\\notepad.exe"
' Specify the current folder
sCurrentFolder = Project.Path + "TestedApps"
' Get the file's relative path
sRelPath = aqFileSystem.GetRelativePath(sCurrentFolder, sFileName)
' Add the Notepad to the list of tested applications by using its relative path
TestedApps.Add(sRelPath)
End Sub
DelphiScript
// For this routine to run, you project must have the TestedApps collection
procedure GetRelativePathExample2();
var sFileName, sCurrentFolder, sRelPath;
begin
// Specify the fully qualified file name
sFileName := 'C:\Windows\System32\notepad.exe';
// Specify the current folder
sCurrentFolder := Project.Path + 'TestedApps';
// Get the file's relative path
sRelPath := aqFileSystem.GetRelativePath(sCurrentFolder, sFileName);
// Add the Notepad to the list of tested applications by using its relative path
TestedApps.Add(sRelPath);
end;
C++Script, C#Script
// For this routine to run, you project must have the TestedApps collection
function GetRelativePathExample2()
{
// Specify the fully qualified file name
var sFileName = "C:\\Windows\\System32\\notepad.exe";
// Specify the current folder
var sCurrentFolder = Project["Path"] + "TestedApps";
// Get the file's relative path
var sRelPath = aqFileSystem["GetRelativePath"](sCurrentFolder, sFileName);
// Add the Notepad to the list of tested applications by using its relative path
TestedApps["Add"](sRelPath);
}
The code below gets the HTML document, the image file name and adds an IMG
element to the document using the image file’s relative path.
JavaScript
{
// Set the HTML document name
let sPath = "C:\\Data\\FileName.html";
if (aqFile.Exists(sPath))
{
// Set the image name
let sImagePath = "C:\\Data\\images\\img1.png";
// Get the relative path to the image
let sRelPath = aqFileSystem.GetRelativePath(aqFileSystem.GetFileInfo(sPath).ParentFolder.Path, sImagePath);
// Get an HTML document
// Add a new img element to it
// And set the src attribute of the added image to the relative path
let Doc = getActiveXObject("Msxml2.DomDocument.6.0");
Doc.async = false;
Doc.load(sPath);
let Node = Doc.documentElement;
if (Node != null)
{
let body = Node.selectSingleNode("//body");
if (body != null)
{
let newImageElement = Doc.createElement("img");
let attr = Doc.createAttribute("src");
attr.value = sRelPath;
newImageElement.setAttributeNode(attr);
body.appendChild(newImageElement);
Doc.Save(sPath);
}
}
}
else
Log.Message("File " + sPath + " does not exist.");
}
JScript
{
// Set the HTML document name
var sPath = "C:\\Data\\FileName.html";
if (aqFile.Exists(sPath))
{
// Set the image name
var sImagePath = "C:\\Data\\images\\img1.png";
// Get the relative path to the image
var sRelPath = aqFileSystem.GetRelativePath(aqFileSystem.GetFileInfo(sPath).ParentFolder.Path, sImagePath);
// Get an HTML document
// Add a new img element to it
// And set the src attribute of the added image to the relative path
var Doc = Sys.OleObject("Msxml2.DOMDocument.6.0");
Doc.async = false;
Doc.load(sPath);
var Node = Doc.documentElement;
if (Node != null)
{
var body = Node.selectSingleNode("//body");
if (body != null)
{
var newImageElement = Doc.createElement("img");
var attr = Doc.createAttribute("src");
attr.value = sRelPath;
newImageElement.setAttributeNode(attr);
body.appendChild(newImageElement);
Doc.Save(sPath);
}
}
}
else
Log.Message("File " + sPath + " does not exist.");
}
Python
def GetRelativePathExample3():
# Set the HTML document name
sPath = "C:\\Data\\FileName.html"
if (aqFile.Exists(sPath)):
# Set the image name
sImagePath = "C:\\Data\\images\\img1.png"
# Get the relative path to the image
sRelPath = aqFileSystem.GetRelativePath(aqFileSystem.GetFileInfo(sPath).ParentFolder.Path, sImagePath);
# Get an HTML document
# Add a new img element to it
# And set the src attribute of the added image to the relative path
Doc = Sys.OleObject["Msxml2.DomDocument.6.0"]
Doc.async = False
Doc.load(sPath)
Node = Doc.documentElement;
if (Node != None):
body = Node.selectSingleNode("//body")
if (body != None):
newImageElement = Doc.createElement("img")
attr = Doc.createAttribute("src")
attr.value = sRelPath
newImageElement.setAttributeNode(attr)
body.appendChild(newImageElement)
Doc.Save(sPath)
else:
Log.Message("File " + sPath + " does not exist.")
VBScript
Sub GetRelativePathExample3()
' Set the HTML document name
sPath = "C:\\Data\\FileName.html"
If aqFile.Exists(sPath) Then
' Set the image name
sImagePath = "C:\\Data\\images\\img1.png"
' Get the relative path to the image
sRelPath = aqFileSystem.GetRelativePath(aqFileSystem.GetFileInfo(sPath).ParentFolder.Path, sImagePath)
' Get an HTML document
' Add a new img element to it
' And set the src attribute of the added image to the relative path
Set Doc = Sys.OleObject("Msxml2.DOMDocument.6.0")
Doc.async = False
Doc.load(sPath)
Set Node = Doc.documentElement
If Not Node Is Nothing Then
Set body = Node.selectSingleNode("//body")
If Not body Is Nothing Then
Set newImageElement = Doc.createElement("img")
Set attr = Doc.createAttribute("src")
attr.value = sRelPath
newImageElement.setAttributeNode(attr)
body.appendChild(newImageElement)
Doc.Save(sPath)
End If
End If
Else
Log.Message("File " + sPath + " does not exist.")
End If
End Sub
DelphiScript
procedure GetRelativePathExample3();
var sPath, sImagePath, sRelPath, Doc, Node, body, newImageElement, attr;
begin
// Set the HTML document name
sPath := 'C:\Data\FileName.html';
if aqFile.Exists(sPath) then
begin
// Set the image name
sImagePath := 'C:\Data\images\img1.png';
// Get the relative path to the image
sRelPath := aqFileSystem.GetRelativePath(aqFileSystem.GetFileInfo(sPath).ParentFolder.Path, sImagePath);
// Get an HTML document
// Add a new img element to it
// And set the src attribute of the added image to the relative path
Doc := Sys.OleObject('Msxml2.DOMDocument.6.0');
Doc.async := false;
Doc.load(sPath);
Node := Doc.documentElement;
if Node <> nil then
begin
body := Node.selectSingleNode('//body');
if body <> nil then
begin
newImageElement := Doc.createElement('img');
attr := Doc.createAttribute('src');
attr.value := sRelPath;
newImageElement.setAttributeNode(attr);
body.appendChild(newImageElement);
Doc.Save(sPath);
end;
end;
end
else
Log.Message('File ' + sPath + ' does not exist.');
end;
C++Script, C#Script
function GetRelativePathExample3()
{
// Set the HTML document name
var sPath = "C:\\Data\\FileName.html";
if (aqFile["Exists"](sPath))
{
// Set the image name
var sImagePath = "C:\\Data\\images\\img1.png";
// Get the relative path to the image
var sRelPath = aqFileSystem["GetRelativePath"](aqFileSystem["GetFileInfo"](sPath)["ParentFolder"]["Path"], sImagePath);
// Get an HTML document
// Add a new img element to it
// And set the src attribute of the added image to the relative path
var Doc = Sys["OleObject"]("Msxml2.DOMDocument.6.0");
Doc.async = false;
Doc.load(sPath);
var Node = Doc["documentElement"];
if (Node != null)
{
var body = Node["selectSingleNode"]("//body");
if (body != null)
{
var newImageElement = Doc["createElement"]("img");
var attr = Doc["createAttribute"]("src");
attr.value = sRelPath;
newImageElement["setAttributeNode"](attr);
body["appendChild"](newImageElement);
Doc["Save"](sPath);
}
}
}
else
Log["Message"]("File " + sPath + " does not exist.");
}
See Also
Working With Files From Scripts
ExpandFileName Method
ExpandUNCFileName Method