c# - titulo - cambiar nombre proyecto visual studio
Enlazando mi programa con el evento de cambio de nombre de Windows Explorer (3)
Probablemente puedas resolver esto usando la clase FileSystemWatcher en .NET framework.
De las observaciones de la clase:
Puede ver el cambio de nombre, eliminación o creación de archivos o directorios. Por ejemplo, para ver el cambio de nombre de los archivos de texto, configure la propiedad Filter en "* .txt" y llame al método WaitForChanged con un Renamed especificado para su parámetro.
¿Hay alguna manera, en cualquier idioma, de enganchar mi programa cuando un usuario cambia el nombre de un archivo?
Por ejemplo: un usuario cambia el nombre de un archivo y presiona enter (o clics de distancia) para confirmar la acción de cambio de nombre. ANTES de que se renombre realmente el archivo, mi programa "escucha" este evento y aparece un mensaje que dice "¿Seguro que quieres cambiar el nombre de C: / test / file.txt a C: / test / test.txt?".
Estoy pensando / esperando que esto sea posible con C ++, C # o .NET. Pero no tengo ni idea de dónde buscar.
Gracias.
Supongo que esto no es posible, encontré esto que es para las operaciones de monitoreo (incluido el cambio de nombre) en una carpeta, pero no parece haber un método similar para los archivos.
@Richard, FileSystemWatcher es bueno si solo necesitas monitorear los cambios, pero necesita interrumpirlos, lo cual no puede hacer.
IFileOperationProgressSink.PreRenameItem
es lo más cercano que conozco. Desafortunadamente, no es un gancho en Explorer, por lo que solo puede usarlo para sus propias acciones de IFileOperation
. Dependiendo de sus necesidades, puede escribir una extensión de shell para hacer su propio ConfirmRename
(o algo así), y bifurcarse desde allí.
De lo contrario, estás buscando conectar SHFileOperation
, creo. Esto debería hacerse en código no administrado, ya que se cargará en Explorer.exe. Para Vista, esto se cambió a IFileOperation
, lo que probablemente significa que tendrás que enganchar la creación y pasar el simulacro.
Personalmente, creo que ya que estás hablando de un cambio de nombre, la idea de wilhelmtell de confirmar después del cambio, y deshacerlo si es necesario es la mejor idea.