ネットワークにマップされたドライブ(Z :)にフォルダを作成するJavaがあります。 スクリプトはサーバーAで実行されます(Windows 2008 R2、ユーザーアカウント "serviceUser"として実行)サーバB(Windows 2003)上にフォルダを作成するフォルダを作成しても継承されない権限がある
サーバBのルートフォルダ(Z:にマップされています)に特別な権限があり、 "serviceUser"が作成、変更、削除、書き込みなどを行うことができます。パーミッションは子オブジェクトを継承するように設定されているので、Z:で作成されたフォルダはZ:と同じパーミッションを取得する必要があります。以下のような:
私のコードは、Z内部の2つのフォルダを作成
File destination = new File("z:\\folder_1\\");
File destination = new File("z:\\folder_1\\subfolder_1\\");
フォルダ "folder_1を" 適切なアクセス許可が、 "subfolder_1" を取得しません。 それらのフォルダを作成した後、私は、ファイルを作成する必要がありますが、「subfolder_1は」許可を取得しないように私はこの問題を解決するにはどうすればよいFile fileName = new File("z:\\folder_1\\subfolder_1\\filename.png");
を行うときに、コンソールが"Access is denied"
を報告しますか?
ディレクトリが存在するかどうか最初に確認する方がよいでしょうか? 'if(!destination.exists())destination.mkdir();' –
はい、それは質問の範囲にはありませんでした。 –
私はそれがOPのために起こっているシナリオだとは思わないが、そのプレチェックを行うことに全く間違いがない。 mkdirs呼び出しは、指定されたパス内の既存のディレクトリをすべて無視します。 – Perception