5

アプリケーションで Java の File クラスを使用file.GetFreeSpace()して、ファイルを転送する前に十分な空き容量があることを確認します。パスは、現在 ~5TB の空き容量がある unc パスです。ただし、上記のコードを実行すると、返される容量は 713998336 バイト (~680MB) のみです。

100MB から 1GB 強の空き容量がある別の UNC パスを使用するようにアプリケーションをマップし (テストのためにファイルを追加/削除していました)、アプリケーションはそこに正しい空き容量を報告しました。

更新:多くのデバッグを通じて、問題を発見しました。これに似た unc パス:\\domain6\test\Scratch_Folder\ここで、Scratch_Folder は ~5TB の空き容量を持つ DFS 名前空間です。ただし、実行すると、 670MB しかないfile.getFreeSpace空き容量が返されます。\\domain6\test\なぜこれが起こるのでしょうか?

4

2 に答える 2

1

問題が見つかりました!Java は、DFS の実際のフォルダーではなく、DFS のルートの空き容量を返していました (Scratch_Folder がショートカットとして表示されていました)。ショートカットが含まれていないフォルダーへの別のより直接的なパスを見つけ、代わりにアプリケーションを指定して、期待どおりに動作するようになりました。

于 2011-06-10T15:55:58.040 に答える
0

JVM のバグのようです。この機能は Java 6 の新機能です。Java 6 update 25 を試してみてください。9 TB の空き領域がある UNC パスに対してこれを実行すると、9 TB と表示されます。

于 2011-06-08T15:57:54.610 に答える