DOBON.NET DOBON.NETプログラミング掲示板過去ログ

ファイルのコピー

分類:[.NET]

ファイルのコピーについて質問なのですが、
一回目のコピーはできるのですが、2回目の上書きができません。
エラーメッセージ→"XXXへのアクセスが拒否されました"になってしまいます
(XXXはPATH)
これはなぜでしょうか?
サンジさん、こんにちは。

■No7309に返信(サンジさんの記事)
> 一回目のコピーはできるのですが、2回目の上書きができません。

自分が考えられる理由としては、
・上書き禁止のファイルをコピーした
・ファイルが掴んだ(開いた)ままになっている
あたりでしょうか。

どのように処理しているか(コードなど)を詳しく書くともっと適切な
レスが付くかもしれません。
確かに読み取り専用ではあります。
読み取り専用のチェックを外すとうまくいきます。

コードはどぼん!さんのコードをそのまま使用しています
これは読み取り専用のコピーはできないのでしょうか?

Public Shared Sub CopyDirectory( _
ByVal sourceDirName As String, _
ByVal destDirName As String)
'コピー先のディレクトリがないときは作る
If Not Directory.Exists(destDirName) Then
Directory.CreateDirectory(destDirName)
'属性もコピー
File.SetAttributes(destDirName, _
File.GetAttributes(sourceDirName))
End If

'コピー先のディレクトリ名の末尾に"\"をつける
If destDirName.Chars((destDirName.Length - 1)) <> _
Path.DirectorySeparatorChar Then
destDirName = destDirName + Path.DirectorySeparatorChar
End If

'コピー元のディレクトリにあるファイルをコピー
Dim fs As String() = Directory.GetFiles(sourceDirName)
Dim f As String
For Each f In fs
File.Copy(f, destDirName + Path.GetFileName(f), True)
Next

'コピー元のディレクトリにあるディレクトリをコピー
Dim dirs As String() = Directory.GetDirectories(sourceDirName)
Dim dir As String
For Each dir In dirs
CopyDirectory(dir, destDirName + Path.GetFileName(dir))
Next
End Sub
えっと、いろいろいじってたらできました。
すいません
解決済み!
  • 題名: Re[4]: ファイルのコピー
  • 著者: よねKEN
  • 日時: 2004/11/12 23:29:30
  • ID: 7341
  • この記事の返信元:
  • この記事への返信:
    • (なし)
  • ツリーを表示
■No7317に返信(サンジさんの記事)
> えっと、いろいろいじってたらできました。
> すいません

そういうときは結果報告して、情報共有ましょうよ。
そうすればきっとサイトのTipsもパワーアップしてみんなが幸せになれます。

DOBON.NET | プログラミング道 | プログラミング掲示板