private static FileAttributes loadAttributes(IShellFolder2 iShellFolder, PIDL pidlFull, PIDL pidlRel) { FileAttributes retVal = new FileAttributes(); //ShellAPI.SFGAO attribute = shGetFileAttribute(pidlFull, ShellAPI.SFGAO.READONLY | // ShellAPI.SFGAO.FOLDER | ShellAPI.SFGAO.FILESYSTEM | ShellAPI.SFGAO.STREAM | ShellAPI.SFGAO.FILESYSANCESTOR | // ShellAPI.SFGAO.HIDDEN); ShellAPI.SFGAO attribute = ShellAPI.SFGAO.READONLY | ShellAPI.SFGAO.FOLDER | ShellAPI.SFGAO.FILESYSTEM | ShellAPI.SFGAO.STREAM | ShellAPI.SFGAO.FILESYSANCESTOR; iShellFolder.GetAttributesOf(1, new IntPtr[] { pidlRel.Ptr }, ref attribute); if (!IOTools.IsZip(attribute) && (attribute & ShellAPI.SFGAO.FOLDER) != 0) { retVal |= FileAttributes.Directory; } if ((attribute & ShellAPI.SFGAO.HIDDEN) != 0) { retVal |= FileAttributes.Hidden; } if ((attribute & ShellAPI.SFGAO.READONLY) != 0) { retVal |= FileAttributes.ReadOnly; } return(retVal); }
public int GetAttributesOf(uint cidl, IntPtr[] apidl, ref ShellAPI.SFGAO rgfInOut) { checkDisposed(); return(_iShellFolder2.GetAttributesOf(cidl, apidl, ref rgfInOut)); }