2012-02-15 24 views
0

を読んで、私はこのコードを持っている:コピーファイルのみパーミッション

try 
{ 
    using (FileStream fs = File.Create(path)) { } 
    File.Delete(pathToStore); 
    File.Copy(path, pathToStore); 
} 
catch(Exception){} 

私は読むことと、私がアクセス拒否エラーを取得するための属性が設定されている書き込みを信じています。 アクセス拒否エラーが発生しないように、自分のコードに読み取り属性を設定する方法はありますか?私のパスはサーバーにあり、私はファイルを開いてファイルを実行する権限を持っています。

+3

ファイルをコピーする前に削除していますか? – gideon

+1

あなたの 'using'ブロックの本体は本当に空ですか?はいの場合、なぜですか?ちなみに、あなたはサーバー上にファイルを作成しています( 'path'はサーバー上にあります)、パスへの書き込みアクセス権が必要です。 –

+1

'catch(Exception ex)'を作り、 'ex'について教えてください。 –

答えて

2

IF pathは読み取り専用ではありません。あなたのコードでは、MSDNに従って上書きされます。

ブロックは、私はちょうどそのusingブロックを除去するであろう空なので

...

変更

にあなたのコード
try 
{ 
    if (File.Exists (path)) 
    { 
     File.Delete(pathToStore); 
     File.Copy(path, pathToStore); 
    } 
} 
catch(Exception Ex) 
{ 
// do something with the Exception! 
} 

ワンポイントしかし:それは通常はすべての例外を飲み込む悪い考えです!

+0

yeaaiii :)これはうまくいきます。誰もが答えてくれてありがとう! :) –

2
File.OpenRead(path); 

これは何が必要ですか?

関連する問題