• 締切済み

C# ファイル削除のエラーコード

hofuhofuの回答

  • hofuhofu
  • ベストアンサー率70% (336/476)
回答No.2

VB6はよく知りませんがGetLastError API相当でいいのであればMarshal.GetLastWin32Errorで判別できるのではないでしょうか? enum Win32Error {   SharingViolation = 0x00000020, } int errNum = System.Runtime.InteropServices.Marshal.GetLastWin32Error(); if(errNum = (int)Win32Error.SharingViolation) {   //ロックがかかっていた場合の処理。 } 当然ですがGetLastWin32Errorを実行するまでに別のエラーが発生した場合は上書きされてしまうので取得できません。

関連するQ&A

  • ファイルコピーとコードの綺麗な書き方について

    質問です。 特定のファイル名を複数コピーする場合、 理想な処理はなんでしょうか? 1. IF文でファイルを確認してコピー処理 2. *.txtにファイル名を予め書き込んでおいて、   1行づつ読み込んで検索してコピー処理 など…、 コードが綺麗に見えて、尚且つ何処に何があるか オープンソースにした時他人がひと目で分かるような 処理構造とはなんでしょうか? あと If File.Exists("C:\test_A.txt") Then File.Copy("C:\test_A.txt", "D:\test_A.txt", True) Else If File.Exists("C:\test_B.txt") Then File.Copy("C:\test_B.txt", "D:\test_B.txt", True) Else MessageBox.Show("test_B.txt" & vbCr & vbCr & _ "ファイルが見つかりません。再度ダウンロードして下さい", "Error", _ MessageBoxButtons.OK, MessageBoxIcon.Error) End If MessageBox.Show("test_A.txt" & vbCr & vbCr & _ "ファイルが見つかりません。再度ダウンロードして下さい", "Error", _ MessageBoxButtons.OK, MessageBoxIcon.Error) End If と永遠に書いてると、何が何処にあるのか難しいです。 一つ一つの確認に~は無い。~はある場合はコピーというのしたいです。 このIF文も何らかの形で解りやすい処理方法に変更してくれれば 幸いです。 【回答お願い】 1. 最も綺麗に見えて他人からも理解出来て処理が   重くならない方法でコピーするコードを書くには? 2. 上記で記載したIF文を500行ぐらい書いています。   もっと綺麗に書く方法はありますか?

  • ファイル削除について

    ファイル削除について C:\temp\111-001-会計.txt C:\temp\111-001-人事.txt C:\temp\111-001-総務.txt C:\temp\111-001-販売.txt このようなファイルがあったとします これをワイルドカードを使って"111-001*" というファイル全てを削除するプログ]ラムを 教えてください ちなみにディレクトリは相対パスで指定できる ようにしたいです 自分でも作成してみたのですが ファイルのあいまい検索ができず困っているところです また1件しか削除できないのでfor文か何かで回すのかなといった感じです Public Sub DeleteFile(ByVal folder As String, ByVal searchPattern As String) Dim stFileName As String = System.IO.Path.GetFileName(folder + searchPattern) If System.IO.File.Exists(folder + searchPattern) Then System.IO.File.Delete(folder + searchPattern) MessageBox.Show("ファイルを削除しました") End If End Sub

  • 一度PictureBoxに表示させたファイルを削除したい(VB2005)

    VB2005の質問です。 一度PictureBoxに表示させたファイルを削除したいと考えています。 例 --------------------------------------------------------   Private FileName As String = "C:\パス"      'パス名   '画像の表示   Sub foo()     PictureBox1.Image = Image.FromFile(FileName)   End Sub   'ファイルの削除   Sub bar()     PictureBox1.Image = Nothing     System.IO.File.Delete(FileName)    'a)エラー発生。削除できない   End Sub -------------------------------------------------------- 上記のコードですと(a)の箇所でエラーが発生します。エラー内容は、「別のプロセスで使用されているためファイルにアクセスできません」、というものです。 このファイルを削除するには、どのような処理が必要でしょうか。 以上、どうぞよろしくお願い致します。

  • 【C#】別プロセスがロックかけているファイルの読込

    別プロセスが更新を行っているファイルを読み取り専用で読み込みたいのですがIOExceptionがでて読み込めません。 ■エラーメッセージ 別のプロセスで使用されているため、プロセスはファイル '※ファイル名※' にアクセスできません。 ■エラーがおきているところ StreamReader sr = new StreamReader(@tempFile, Encoding.Default); ノートパットではエラーなしで開けました。サクラエディタではロックを取得できませんでした。のメッセージは出ましたが中身をみることはできました。 どうかご教示の程よろしくお願いいたします。

  • エラーコード 0x80070570

    ファイルを削除しようと操作したところ、「エラーコード 0x80070570 ファイルかディレクトリーが壊れているため、読み取る事が出来ません」 のメッセージが出てしまい削除できません。 優しくご指導できる方の回答をお待ちしています。

  • ファイル読み込み時のエラー回避

    VB2010のプログラムで、ファイルを読み込む際に「System.IO.File.ReadAllLines」を利用していますが、そのファイルが他で使用されている場合に「別のプロセスで使用されているため、...」というエラーが発生していしまいます。 他でオープンされていてもエラーを発生させず開く方法はないでしょうか。 なければ、回避方法などを教えていただけるとありがたいです。 よろしくお願いします。

  • Windowsファイアウォールのログファイルを開くには?

    Visual Studio 2005でWindowsファイアウォールのログファイルを開こうと思ったのですが、 『System.IO.IOException はユーザー コードによってハンドルされませんでした。 Message="別のプロセスで使用されているため、プロセスはファイル 'C:\WINDOWS\pfirewall.log' にアクセスできません。"』 のようなエラーとなり、開けませんでした。 メモ帳などでは開ける(上書き保存はできませんが)ので、読み取り専用でなら開けるような気がするのですが、書き込みのロックがかかっているファイルを開くことはできるのでしょうか?

  • ファイルの削除ができません。エラーメッセージもでません。

    よろしくお願いします。 Vistaを使っています。 「ピクチャ」の中のファイルが削除できなくなりました。「ピクチャ」の中には、ファイルがいくつかあり、他のファイルは削除できました。 しかし、ひとつのファイルだけが、どうしても削除できません。右クリックの削除でも削除できませんし、ドラッグで「ごみ箱」へ移動してもできません。 再起動もかけましたが、できません。 ファイル名の変更もできなくなりました。 この、ひとつだけ削除できないファイルには、今は何も写真は入っていません。 新たにファイルを作って、中身はすべて移動させています。 何が原因でしょうか? gooの他の質問を見たところ、他の方は何かしらのエラーメッセージが出るようですが、私の場合には何もエラーメッセージがでることがありません。

  • on error 処理に関して

    on error goto での処理ルーチン内で、 さらに on error goto を出すことは可能でしょうか。 それとも、一度on errorを設定すると、エラーが発生した後では変更は不可なのでしょうか。 やりたいことは、 1回目と、2回目、3回目以降でやることとを変えたいのです。 例えば、メッセージを変えるとか。 この場合、 エラー処理の中で、何回目かを聞くことで、メッセージを変えることは出来ると思うのですが、 それはやらず、 他にも色々やることが多いので、別処理として飛びたいのです。 以下のようなイメージです。 err1: on error goto err2 resume next err2: on error goto err3 resume next err3: resume next 宜しくお願いします。

  • ファイルの削除のエラーがでてファイルが消せない

    WIndow98を使ってます。 あるファイル(JPEG)を削除しようとすると、 「ファイルの削除のエラー 指定されたファイル名は、無効かまたは長すぎます。別の名前を指定してください。」 とのエラーがでてしまい、消せません。また、消そうとしたときに間違えて「ショートカットの作成」をクリックしてしまったら、そのショートカットも消せなくなってしまいました。 色々ネットで調べて見ましたが、ファイルの削除エラーで上記のような例がでている場合の解決法を見つけることができませんでした。どなたか対処法を御存知の方がいらっしゃいましたら、どうか教えて下さい。よろしくお願いします。 ちなみに、私は恥ずかしいですがあまりパソコンに詳しい方ではありません(>_<)