diff --git a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveReadRequest.cs b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveReadRequest.cs
index 806aa4f155..256a886877 100644
--- a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveReadRequest.cs
+++ b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveReadRequest.cs
@@ -139,10 +139,15 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
}
else if (filePath.StartsWith(ArchiveConstants.INVENTORY_PATH))
{
+ filePath = filePath.Substring(ArchiveConstants.INVENTORY_PATH.Length);
+
+ // Trim off the file portion if we aren't already dealing with a directory path
+ if (TarArchiveReader.TarEntryType.TYPE_DIRECTORY != entryType)
+ filePath = filePath.Remove(filePath.LastIndexOf("/") + 1);
+
InventoryFolderBase foundFolder
= ReplicateArchivePathToUserInventory(
- filePath, TarArchiveReader.TarEntryType.TYPE_DIRECTORY == entryType,
- rootDestinationFolder, foldersCreated, nodesLoaded);
+ filePath, rootDestinationFolder, foldersCreated, nodesLoaded);
if (TarArchiveReader.TarEntryType.TYPE_DIRECTORY != entryType)
{
@@ -184,7 +189,6 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
/// Replicate the inventory paths in the archive to the user's inventory as necessary.
///
/// The item archive path to replicate
- /// Is the path we're dealing with a directory?
/// The root folder for the inventory load
///
/// The folders created so far. This method will add more folders if necessary
@@ -196,17 +200,10 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
/// The last user inventory folder created or found for the archive path
public InventoryFolderBase ReplicateArchivePathToUserInventory(
string archivePath,
- bool isDir,
InventoryFolderBase rootDestFolder,
Dictionary foldersCreated,
List nodesLoaded)
{
- archivePath = archivePath.Substring(ArchiveConstants.INVENTORY_PATH.Length);
-
- // Remove the file portion if we aren't already dealing with a directory path
- if (!isDir)
- archivePath = archivePath.Remove(archivePath.LastIndexOf("/") + 1);
-
string originalArchivePath = archivePath;
// m_log.DebugFormat(
diff --git a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs
index 507662fd73..cb6bf76b87 100644
--- a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs
+++ b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs
@@ -531,7 +531,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests
new InventoryArchiveReadRequest(scene, ua1, null, (Stream)null)
.ReplicateArchivePathToUserInventory(
- itemArchivePath, false, scene.InventoryService.GetRootFolder(ua1.PrincipalID),
+ itemArchivePath, scene.InventoryService.GetRootFolder(ua1.PrincipalID),
foldersCreated, nodesLoaded);
InventoryFolderBase folder1