diff --git a/os/src/ReadWriteOps.scala b/os/src/ReadWriteOps.scala index 62b8c0be..211ada65 100644 --- a/os/src/ReadWriteOps.scala +++ b/os/src/ReadWriteOps.scala @@ -30,8 +30,8 @@ object write { checker.value.onWrite(target) if (createFolders) makeDir.all(target / RelPath.up, perms) if (perms != null && !exists(target)) { - val permArray = - if (perms == null) Array[FileAttribute[PosixFilePermission]]() + val permArray: Array[FileAttribute[_]] = + if (perms == null) Array.empty else Array(PosixFilePermissions.asFileAttribute(perms.toSet())) java.nio.file.Files.createFile(target.toNIO, permArray: _*) } diff --git a/os/test/src/ReadingWritingTests.scala b/os/test/src/ReadingWritingTests.scala index 12d2b200..c3800074 100644 --- a/os/test/src/ReadingWritingTests.scala +++ b/os/test/src/ReadingWritingTests.scala @@ -124,6 +124,21 @@ object ReadingWritingTests extends TestSuite { os.read(wd / "New File.txt") ==> "Hello" } } + test("outputStreamWithPerms") { + test - prep { wd => + if (!scala.util.Properties.isWin) { + val out = os.write.outputStream(wd / "New File.txt", perms = os.PermSet(420)) + out.write('H') + out.write('e') + out.write('l') + out.write('l') + out.write('o') + out.close() + + os.read(wd / "New File.txt") ==> "Hello" + } + } + } } test("truncate") { test - prep { wd =>