System.IO.PathTooLongException の発生条件 - hd 4.0 で書いた件。
.NET の System.IO.DirectoryInfo.Create()
では 248 文字を超える以上のパスのフォルダーを作ろうとすると例外が飛んでくる。でも Java なら 258 文字まで作れる・・・。
@Test public void Javaではパス長258文字のフォルダーが作れる() { String path = "D:\\xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx1234567890"; File sut = new File(path); assertThat(sut.getAbsolutePath().length(), is(258)); assertThat(sut.mkdir(), is(true)); assertThat(sut.exists(), is(true)); }
Win7 64bit と Java 1.7.0_13 x64 で確認。 259 文字だと mkdir が false を返すようだ。
.NET の制限はほんとよくわからんです。 Java の 258 ってのもよくわからんが。