アプリ版:「スタンプのみでお礼する」機能のリリースについて

File file = new File("G:\\test.xls")
にGディスクは共有ディスクの場合、file.exists()はfalseを戻す
(Gは認識されてない)、Gディスクをローカルディスクに変えると、file.exists()はtrueを戻す、これはなぜですか?

※G共有ディスクの権限はEveryOneにはフルコントロールが設定されてます。

A 回答 (3件)

共有ディスクとはWindowsのファイル共有のことで、Gは認識されていないというのはGドライブとしてネットワークドライブの割り当てがされていないという意味でよろしいでしょうか。



こう考えてみてください。
エクスプローラはそのPCのドライブを見せる機能+ファイル共有されているドライブを見せる機能を持っています。
そのPCのドライブを見せる機能はWindowsに限らないPCの基本的な機能なので、JavaというWindows以外でも動くことを想定したプログラムでも見えるけど、ファイル共有はWindows固有の機能だからJavaでは見えない。

どうやらJavaでファイル共有を扱うには専用のライブラリが必要なようです。参考URLをご覧下さい。(古いニュースなので公式サイトを見たほうがいいと思います。)

参考URL:http://journal.mycom.co.jp/news/2005/08/25/019.h …

この回答への補足

ご回答ありがとうございます。

共有ディスクとはWindowsのファイル共有のことです、
Gはネットワークドライブの割り当てがされてます。

※マシンは三台:APサーバ、ファイルサーバ(Gディスクあり)、ローカル

いま、下記の現象が起こってます。
ローカルマシンのTomCatの下に、共有ディスクGにアクセスすることはできますが、APサーバ(Oracle Application Server)にデプロイされると、プログラムはGにアクセスするのはできません。

補足日時:2007/04/16 20:40
    • good
    • 0

ひょっとして、APサーバをサービスとして動作させていませんか?


サービスは、SYSTEM もしくは LOCAL SERVICE ユーザとして動作するので、
共有ドライブは認識できません。
サービスの「ログオン」設定をあなたが共有宣言しているユーザIDに
すればひょっとしたら、できるかもしれません。
SYSTEMユーザやLOCAL SERVICEユーザでは、相手マシンに対して共有設定ができないので、無理です。
    • good
    • 1

>※マシンは三台:APサーバ、ファイルサーバ(Gディスクあり)、ローカル



とのことですが、APサーバもWindowsでGドライブはネットワークドライブとして設定してありますよね?
念のため、確認です。

この回答への補足

>とのことですが、APサーバもWindowsでGドライブはネットワークドライブとして設定してありますよね?念のため、確認です。
確認しました、設定してます。

補足日時:2007/04/16 23:12
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!