Tengo una unidad habilitada para cuotas y quiero eliminar todos los archivos creados por un usuario específico (en realidad, un conjunto de aplicaciones que se ejecuta con una cuenta especial) desde esa unidad. ¿Cómo puedo hacer esto sin verificar recursivamente todos los archivos y carpetas en HDD si fue creado por un usuario específico o no? Solo necesito obtener "iterador".Eliminar todos los archivos creados por el usuario especificado
Respuesta
echar un vistazo en siguiente ejemplo
[Test]
public void Test()
{
string user = @"Domain\UserName";
var files = Directory.EnumerateFiles(@"C:\TestFolder")
.Where(x => IsOwner(x, user));
Parallel.ForEach(files, File.Delete);
}
private static bool IsOwner(string filePath, string user)
{
return string.Equals(File.GetAccessControl(filePath).GetOwner(typeof (NTAccount)).Value, user,
StringComparison.OrdinalIgnoreCase);
}
Hmm, parece que no hay forma de obtener esta lista sin iterar cada archivo en el disco duro. Vale gracias) – Alexus
En términos de mejorar el rendimiento, creo que podría utilizar la Biblioteca de tareas paralelas cuando use algoritmos recursivos para buscar archivos y carpetas.
Otra forma, que podría hacer que Lucence era un marco útil para la búsqueda y que ya se publicó la versión para .NET
TPL e IO, ¿no SSD? Para muchos archivos, los resultados serán mucho peores que sin TPL ... –
En realidad, se puede hacer eso iterativamente y muy utilizando eficientemente USN Change Journal, vea http://msdn.microsoft.com/en-us/library/windows/desktop/aa363798.aspx. Con un uso adecuado del filtrado, puede obtener una lista de archivos creados por un usuario específico dentro de un período de tiempo específico.
Por otro lado, esta técnica es bastante complicada y es adecuada para aplicaciones de tiempo crítico; si la eficiencia no es el punto focal de su aplicación, elegiría una solución más simple.
- 1. ¿Desea borrar todos los elementos en caché creados por WebView?
- 2. eliminar todos los archivos de tamaño cero en el directorio especificado
- 3. iCloud: Cómo leer en directorios creados por el usuario
- 4. Eliminar carpeta y todos los archivos/subdirectorios
- 5. Rails 3: ¿Formularios personalizados creados por el usuario?
- 6. Eliminación de archivos temporales creados por pdf()
- 7. Android - Conservar o eliminar archivos creados por la aplicación en la desinstalación
- 8. Eliminar todos los archivos desprotegidos sin afectar el repositorio SVN
- 9. ¿Dónde almacena Railo los archivos creados por <cflog>?
- 10. Determine qué objetos creados por el usuario en SQL Server
- 11. ¿Cómo podemos incluir los archivos creados por ajaxmin en el paquete msdeploy creado por MSBuild
- 12. Web.config ¿Es posible registrar todos los controles de usuario en el directorio especificado
- 13. Lista de todos los archivos versionados en subversión? (Eliminar archivos por nombre)
- 14. UnauthorizedAccessException en archivos recién creados
- 15. limit drupal view para mostrar solo los nodos creados por el usuario
- 16. Eliminar archivos creados entre determinadas marcas de tiempo.
- 17. Proceso por lotes todos los archivos en el directorio
- 18. Eliminar todos los atributos
- 19. ¿Cómo eliminar todos los archivos eliminados del repositorio?
- 20. Lista de todos los archivos registrados en TFS por un usuario en los últimos días
- 21. Subversion: cómo eliminar todos los archivos .svn recursivamente?
- 22. Eliminar todos los índices en Lucene.net
- 23. Código de Python para encontrar todos los archivos recién creados, modificados y eliminados en todos los directorios/subdirectorios desde/directory
- 24. NSIS - Eliminar todos los archivos, excepto un archivo
- 25. Eliminar todos los archivos en un directorio con Python
- 26. ¿Eliminar todos los archivos de git de un directorio?
- 27. Vistas de Drupal: muestra los nodos recientes creados por el usuario en la página de perfil
- 28. ¿Los archivos creados con Path.GetTempFileName se limpian automáticamente?
- 29. ¿Eliminar todos los archivos pero mantener todos los directorios en un script bash?
- 30. MongoMapper: encontrar todos los documentos creados en una fecha específica
¿Se refiere al * propietario del archivo *? –
Programmatically Creo que necesitaría iterar todos los archivos de su controlador. Tal vez podría cambiar esta pregunta para ver si los servidores pueden ayudarlo mejor. –