- PR -

Vista ファイルコピー

投稿者投稿内容
未記入
会議室デビュー日: 2008/03/21
投稿数: 7
投稿日時: 2008-03-21 20:08
こんにちは

File.Copyを使用して"C:\Windows"へファイルをコピーしようとすると
アクセス拒否されてしまいコピーする事ができません。

・exeを右クリックし管理者として実行
・Visual Studioを管理者として実行して実行
・exeのプロパティの互換性タブにある「管理者としてこのプログラムを実行する」
 にチェックをつけてから実行

上記の事とデスクトップへのコピーを試しましたがコピーする事ができませんでした。

対処方法があればどなたかご教授願います。


【環境】
OS:WindowsVista + .NET Framework2.0 (C#)
囚人
ぬし
会議室デビュー日: 2005/08/13
投稿数: 1019
投稿日時: 2008-03-21 21:29
どんなコードを書いて、どんなエラーが出たんでしょうか。
未記入
会議室デビュー日: 2008/03/21
投稿数: 7
投稿日時: 2008-03-21 21:56
早速の返答ありがとうございます。

コードは以下になります。

  static void Main(string[] args)
{
try
{
File.Copy(コピー先,コピー元);

}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());

}
}

エラーは例外が発生しexの内容は「パスへのアクセスは拒否されました」になります。

よろしくお願いします。
ちゃっぴ
ぬし
会議室デビュー日: 2004/12/10
投稿数: 873
投稿日時: 2008-03-21 22:08
Windows Vista では %SYSTEMROOT% への書き込みは Trusted Installer のみに制限されています。ACL の緩和を行わない限りこちらの directory へ書き込むことはできません。

ただし、Windows Vista 以前でもこちらの directory へ application を配置することは推奨されていません。Path を通す必要のある DLL でも別の directory へ配置し、%PATH% にその directory を加えてやるのが正しい手法です。

配置先を見直すべきでしょう。
_________________
未記入
会議室デビュー日: 2008/03/21
投稿数: 7
投稿日時: 2008-03-21 22:12
返答ありがとうございます。

頂いた内容でやってみます。

ありがとうございます。
未記入
会議室デビュー日: 2008/03/21
投稿数: 7
投稿日時: 2008-03-21 22:40
何度も大変申し訳ありません。

他のどのディレクトリ(デスクトップやC:/public等)にもコピーができず
同じ状態になってしまうのですが。

・exeを右クリックし管理者として実行
・Visual Studioを管理者として実行して実行
・exeのプロパティの互換性タブにある「管理者としてこのプログラムを実行する」
 にチェックをつけてから実行

上記の以外にも方法がありますでしょうか?

ご教授願います。
囚人
ぬし
会議室デビュー日: 2005/08/13
投稿数: 1019
投稿日時: 2008-03-21 22:51
引用:

  static void Main(string[] args)
{
try
{
File.Copy(コピー先,コピー元);

}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());

}
}


このコードじゃ動かないですよね。
極端な話コピー&ペーストするだけで再現可能なコードは出せんもんですか。

ちなみに、上記コードのまま書いてるなら、コピー元とコピー先が逆。
未記入
会議室デビュー日: 2008/03/21
投稿数: 7
投稿日時: 2008-03-21 22:58
返答ありがとうございます。

大変失礼しました。

確かに逆ですね。
申し訳ありません。

修正したところできました。

申し訳ありません。

スキルアップ/キャリアアップ(JOB@IT)