3

読み取り専用に設定されたファイルが内部にあるフォルダーに属性を設定しようとすると、問題が発生しました。フォルダー属性は設定できましたが、その中のファイルは設定できませんでした。

これにより、サブフォルダーを含む属性が設定されてから削除されます。codeprojectに関する情報が見つかりました。

これを使用するには:

ScanDirectory scanDirectory = new ScanDirectory();  
scanDirectory.WalkDirectory(@"/Storage Card");

public class ScanDirectory
{
    public void WalkDirectory(string directory)
    {
        WalkDirectory(new DirectoryInfo(directory));
    }

    private void WalkDirectory(DirectoryInfo directory)
    {
        // Scan all files in the current path
        foreach (FileInfo file in directory.GetFiles())
        {
            file.Attributes &= ~FileAttributes.ReadOnly;
            file.Delete();
        }

        DirectoryInfo[] subDirectories = directory.GetDirectories();

        // Scan the directories in the current directory and call this method 
        // again to go one level into the directory tree
        foreach (DirectoryInfo subDirectory in subDirectories)
        {
            WalkDirectory(subDirectory);
            subDirectory.Attributes &= ~FileAttributes.ReadOnly;

            subDirectory.Delete();
        }
    }
}
4

2 に答える 2