Skip to content

Commit 1aaea34

Browse files
Merge pull request #88 from mikedurbin/relative-paths
Added support for mixed path types.
2 parents 1dfdae6 + f451931 commit 1aaea34

2 files changed

Lines changed: 10 additions & 2 deletions

File tree

src/main/java/gov/loc/repository/bagit/writer/RelativePathWriter.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,7 @@ private RelativePathWriter(){
1919
* @return the relative path with only unix path separator
2020
*/
2121
public static String formatRelativePathString(final Path relativeTo, final Path entry){
22-
final String encodedPath = PathUtils.encodeFilename(relativeTo.relativize(entry));
23-
22+
final String encodedPath = PathUtils.encodeFilename(relativeTo.toAbsolutePath().relativize(entry.toAbsolutePath()));
2423
return encodedPath.replace('\\', '/') + System.lineSeparator();
2524
}
2625
}

src/test/java/gov/loc/repository/bagit/writer/RelativePathWriterTest.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,4 +22,13 @@ public void testRelativePath(){
2222

2323
assertEquals(expectedRelativePath, RelativePathWriter.formatRelativePathString(parent, child));
2424
}
25+
26+
@Test
27+
public void testUsingBothRelativeAndAbsolutePaths(){
28+
Path parent = Paths.get("one/two");
29+
Path child = Paths.get("one/two/three").toAbsolutePath();
30+
String expectedRelativePath = "three" + System.lineSeparator();
31+
32+
assertEquals(expectedRelativePath, RelativePathWriter.formatRelativePathString(parent, child));
33+
}
2534
}

0 commit comments

Comments
 (0)