diff --git a/source/RobotAPI/components/ArViz/ArVizStorage.cpp b/source/RobotAPI/components/ArViz/ArVizStorage.cpp
index 8630c8a9f76cce5bb9b6d61005bed907786e8b3c..3f4ff4644d9bd11068fd86c55820bbce98d19ebb 100644
--- a/source/RobotAPI/components/ArViz/ArVizStorage.cpp
+++ b/source/RobotAPI/components/ArViz/ArVizStorage.cpp
@@ -599,8 +599,9 @@ void armarx::ArVizStorage::stopRecording(const Ice::Current&)
     recordingMetaData.firstTimestampInMicroSeconds = -1;
 }
 
-armarx::viz::data::RecordingSeq armarx::ArVizStorage::getAllRecordings(const Ice::Current&)
+armarx::viz::data::RecordingsInfo armarx::ArVizStorage::getAllRecordings(const Ice::Current&)
 {
+    viz::data::RecordingsInfo recordingsInfo;
     viz::data::RecordingSeq result;
 
     for (std::filesystem::directory_entry const& entry : std::filesystem::directory_iterator(historyPath))
@@ -619,8 +620,10 @@ armarx::viz::data::RecordingSeq armarx::ArVizStorage::getAllRecordings(const Ice
         }
     }
 
+    recordingsInfo.recordings = result;
+    recordingsInfo.recordingsPath = historyPath;
 
-    return result;
+    return recordingsInfo;
 }
 
 armarx::viz::data::RecordingBatch armarx::ArVizStorage::getRecordingBatch(std::string const& recordingID, Ice::Long batchIndex, const Ice::Current&)
diff --git a/source/RobotAPI/components/ArViz/ArVizStorage.h b/source/RobotAPI/components/ArViz/ArVizStorage.h
index c484b6d21c28f8ba25ebf7c8f1ff1e40f816c8d7..27bb6b1fcf130e23844c497a8a2a85cc1b392943 100644
--- a/source/RobotAPI/components/ArViz/ArVizStorage.h
+++ b/source/RobotAPI/components/ArViz/ArVizStorage.h
@@ -92,7 +92,7 @@ namespace armarx
                 const Ice::Current&) override;
         std::string startRecording(std::string const& prefix, const Ice::Current&) override;
         void stopRecording(const Ice::Current&) override;
-        viz::data::RecordingSeq getAllRecordings(const Ice::Current&) override;
+        viz::data::RecordingsInfo getAllRecordings(const Ice::Current&) override;
         viz::data::RecordingBatch getRecordingBatch(const std::string&, Ice::Long, const Ice::Current&) override;
 
     private:
diff --git a/source/RobotAPI/gui-plugins/ArViz/ArVizWidgetController.cpp b/source/RobotAPI/gui-plugins/ArViz/ArVizWidgetController.cpp
index 1962d259c0d2329c9870f1e3d314fdea17a1f60d..945013a9905234d8eb807745bea34e04c8456b31 100644
--- a/source/RobotAPI/gui-plugins/ArViz/ArVizWidgetController.cpp
+++ b/source/RobotAPI/gui-plugins/ArViz/ArVizWidgetController.cpp
@@ -621,7 +621,7 @@ namespace armarx
 
     void ArVizWidgetController::onRefreshRecordings()
     {
-        allRecordings = storage->getAllRecordings();
+        allRecordings = storage->getAllRecordings().recordings;
         std::sort(allRecordings.begin(), allRecordings.end(),
                   [](viz::data::Recording const & lhs, viz::data::Recording const & rhs)
         {
diff --git a/source/RobotAPI/interface/ArViz/Component.ice b/source/RobotAPI/interface/ArViz/Component.ice
index 33fd7ca5728456079298f4ca34c5aee074d88a62..6ba528b4f87fe2dab27c6d9511612b3ae01055ed 100644
--- a/source/RobotAPI/interface/ArViz/Component.ice
+++ b/source/RobotAPI/interface/ArViz/Component.ice
@@ -106,6 +106,13 @@ struct RecordingBatch
 
 sequence<Recording> RecordingSeq;
 
+struct RecordingsInfo
+{
+    data::RecordingSeq recordings;
+    // Equivalent to the property "HistoryPath" of ArVizStorage.
+    string recordingsPath;
+};
+
 };
 
 interface StorageInterface
@@ -121,7 +128,7 @@ interface StorageInterface
 
     void stopRecording();
 
-    data::RecordingSeq getAllRecordings();
+    data::RecordingsInfo getAllRecordings();
 
     data::RecordingBatch getRecordingBatch(string recordingID, long batchIndex);
 };