ISO を抽出し、抽出した ISO からフォルダーをコピーしています。問題は、抽出されたファイルが読み取り専用であることです。プロパティメニューとC#のコードから変更しようとしました。どちらも機能しませんでした。
ISO を抽出するために使用したコードは別の質問にあります: c# またはバッチを使用して winrar で ISO を自動的に抽出します。
抽出した ISO の属性を変更してサブフォルダーからコピーできるようにする方法、またはサブフォルダーの許可を変更する方法を探しています。
前もって感謝します
アップデート
新しいコード
string[] folderToName = txtCopyFrom.Text.Split('\\');
string isoName = folderToName[folderToName.Length - 1];
isoName = isoName.Remove(isoName.Length - 4, 4);
string copyTestFrom = txtCopyTo.Text + @"\"+ isoName + @"\Test\subTest";
string[] folderName = txtCopyFrom.Text.Split('\\');
string folderTestTo = folderName[folderName.Length - 1];
folderTestTo = folderTestTo.Remove(folderTestTo.Length - 4, 4);
string copyTest = txtCopyTo.Text;
System.IO.Directory.CreateDirectory(copyTest);
DirectoryInfo di = new DirectoryInfo(copyTestFrom);
di.Attributes &= ~FileAttributes.ReadOnly;
foreach (FileInfo fi in di.GetFiles())
{
fi.IsReadOnly = false;
string destinationPath = Path.Combine(copyTest, Path.GetFileName(copyTestFrom));
File.Copy(copyTestFrom, destinationPath);
}
MessageBox.Show("Files Copied");
subTest のファイルは読み取り専用ではなく、フォルダー自体のみです。
宛先パスは C:\users\mydocs\ISODump\subTest になります
access denied
例外がスローされた後でも、フォルダーを手動でコピーできます
更新 2
回避策
私の目的のために、回避策を見つけました。directory.move
フォルダーをコピーするのではなく、フォルダーを移動することで、私が望んでいた目的を達成します。
ありがとう