2017-09-01 5 views
1

ファイルを削除しようとしていますが、完全なアクセス許可があってもエラーメッセージ(アクセス拒否)が表示されています。最初は私のファイルは私のルートフォルダにあります。最初に、ファイルの名前を変更して、そのファイルを次のように別のフォルダ(ルートフォルダの外)に移動します。cで移動した後にファイルを削除できません#

System.IO.File.Move(strPhysicalFolder+ tpfile,strPhysicalFolder+fName); 
System.IO.File.Move(strPhysicalFolder + fName, filePath + fName); 
System.IO.File.SetAttributes(filePath + fName, FileAttributes.Normal); 

ファイルを削除しようとするたびに、エラーが発生します(アクセスが拒否されました)。

string strFileFullPath = srcPath + filename; 
if (System.IO.File.Exists(strFileFullPath)) 
{ 
    System.IO.File.Delete(strFileFullPath); 
} 

strFileFullPathは私が削除することはできないのですファイルへのパスが含まれています 以下は私のコードです。削除する前に何かする必要がありますか(属性の設定)?どんな助けもありがとう。ありがとうございました。

+0

何が起こりますか。あなたは実際にコードの外の新しい場所からそれを削除できますか? – Skintkingle

+0

サイドノートですが、 'System.IO.Path.Combine()'を参照してください。 –

+2

情報が不十分です。移動と削除の間に何かしていますか?もしそうなら:どうしますか。また、名前変更と移動は1つのステップで行うことができます。また、文字列連結の 'System.IO.Path.Combine'をもっと使いましょう。パスの区切り文字を含め、すべてのパスが正しいことを確認していますか? – LocEngineer

答えて

3

音が聞こえませんが、おそらくフォルダのアクセス許可になります。次のような

多分何かは:あなたは、エクスプローラでファイルに行けば

System.IO.File.SetAttributes(strFileFullPath, FileAttributes.Normal); 
System.IO.File.Delete(strFileFullPath); 
+0

トムありがとう。これはうまくいった。しかし、私はファイル属性を設定する理由を知っているかもしれませんか? –

+1

これは私が誤って見つけたものでした。私はこのファイルをあなたの 'C:\ 'のどこかに移動していると仮定します。そうであれば、ファイルの属性は上がり、あなたはすぐに入りませんアプリケーションから削除してください。削除する前にこれを変更する必要があります。 – Tom

+0

はい、正確に私はcに移動します。なぜなら、私がルートフォルダにファイルを保存するときはいつでも、それはユーザに直接アクセスできるからです。だから私はルートフォルダからすべてのファイルを移動しています。 –

関連する問題