Java の方が .NET の System.IO より長いフォルダー作れる・・

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 ってのもよくわからんが。