2

ユーザーがテキストファイルを作成し、次のコードを使用してコンピューター上の好きな場所に保存できる Java アプリケーションがあります。

File txtFile = new File( path );
Writer writer = new BufferedWriter( new OutputStreamWriter( new FileOutputStream( txtFile ), "UTF-8" ) );  // Error occurs here.

しかし、Windows 7 を使用している多くのユーザーは、ファイルを"C:\"に保存すると、" Access is denied " エラーが発生すると報告しています。これは、Win7 でそのようなパスにファイルを保存するには管理者権限が必要なためであることがわかりました。

ユーザーに警告メッセージを表示する代わりに、 「このパスにファイルを保存できません」、Java コードを介して Win7 で管理者権限を持つ方法がある場合のように、このパスにファイルを保存できますか、またはそんな感じ ?

4

3 に答える 3

3

短い答え - いいえ。

C ドライブに保存する必要がある場合は、権限が必要です。このプログラムがファイルを作成するだけでよい場合は、ユーザーの一時フォルダーを使用できます。System.getProperty() を参照してください。

于 2012-10-13T20:38:21.080 に答える
2

Windows Vista と Windows 7 では UAC が有効になっています。UAC は、管理者権限なしで、いくつかの場所に新しいファイルを作成することを拒否します。

権限を確認し、ADMINISTRATIVE アカウントで Java 実行可能ファイルを実行するか、UAC を無効にしてください。

これを行うには、「スタート」に移動して「CMD.EXE」と入力します -> cmd.exe ファイルを右クリックし、管理者として実行します。次に、.class ファイルを含む場所に移動します。次に、java ClassFile入力してEnterキーを押します

于 2012-10-13T20:36:24.027 に答える
2

cmd 、つまり Dos を使用してファイルまたはEclipseを実行していますか? 使用しているものは何でもデフォルトユーザーとして実行しているようです。Windows 7 では、UAC はデフォルトで system.directory への書き込みをブロックします。

以下を実行してください。うまくいけばうまくいくはずです1

> If cmd.exe
>      Then when you open run from start menu. Right click it, select run as administrator and  then run your application
>     
>     If eclipse/any other IDE
>     
>     Close existing, right clicl eclipse,select run as admim and then run your application
> 
> Hope this helps
于 2012-10-13T20:43:57.603 に答える