Windows n'utilise pas la convention dot-file pour les fichiers cachés. Cependant, de nombreuses applications Windows (principalement opensource/multiplate-forme) utilisent des fichiers et des dossiers avec cette convention. Comment puis-je faire en sorte que l'Explorateur Windows masque automatiquement ces fichiers point?
ATTRIB +H /s /d C:\.*
est la commande pour masquer quoi que ce soit, les répertoires inclus qui commencent par un point
Cela ne listera pas les fichiers (comme indiqué ci-dessous), mais frappera tous les fichiers auxquels il peut accéder, et appliquera l'attribut Caché.
Une fois cette opération effectuée, vous pouvez vous assurer que les options des dossiers sont définies pour masquer les fichiers cachés. Cliquez sur Démarrer, tapez folder options
et appuyez sur Enter. Cliquez sur l'onglet Affichage, puis choisissez Ne pas afficher les fichiers, dossiers ou lecteurs cachés sous Fichiers et dossiers\fichiers et dossiers cachés. Hit Appliquer, puis OK (ou juste OK).
Simple:
Dans l'explorateur Windows
.folder
que vous voulez masquer;properties
, puis cliquez sur l'onglet general
;hidden
.Terminé.
PS vérifié uniquement sous Windows 7 Professionnel. PPS J'ai remarqué que votre question demandait de le faire automatiquement. Clairement, cela ne suffira pas, mais peut-être que les lecteurs le trouveront utile.
C'est possible en C #, en utilisant System.IO.FileSystemWatcher. Le code serait quelque chose comme ça. Il suffit de le compiler et de le placer dans le dossier de démarrage. Mais ce code ne cache pas les fichiers existants. Donc lancez d'abord le code de Luke, et ensuite ce code. Vous avez besoin des droits System.IO et System.Security.Permissions.
[PermissionSet(SecurityAction.Demand, Name = "FullTrust")]
public static void Run()
{
FileSystemWatcher watcher = new FileSystemWatcher();
watcher.Path = "C:\\";
watcher.IncludeSubdirectories = true;
watcher.Filter = "*.*";
watcher.Renamed += new RenamedEventHandler(OnRenamed);
watcher.Created += new FileSystemEventHandler(watcher_Created);
watcher.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite | NotifyFilters.FileName | NotifyFilters.DirectoryName;
watcher.EnableRaisingEvents = true;
Console.WriteLine("Started...");
while (true) ;
}
static void Check(string filename)
{
string name = Path.GetFileName(filename);
if (name.StartsWith(".") && !File.GetAttributes(filename).HasFlag(FileAttributes.Hidden))
{
File.SetAttributes(filename, File.GetAttributes(filename) | FileAttributes.Hidden);
}
}
static void watcher_Created(object sender, FileSystemEventArgs e)
{
Check(e.FullPath);
}
private static void OnRenamed(object source, RenamedEventArgs e)
{
Check(e.FullPath);
}
}
Windows masquera les fichiers avec l'indicateur système masqué ou . Ou les fichiers peuvent être cachés en utilisant ACL. Windows ne masque pas les fichiers basés sur le nom de fichier.
Pour que Windows ait explicitement à cacher des fichiers par nom de fichier, vous devez créer explicitement la fonctionnalité. Soit un pilote de système de fichiers (il était courant que les virus aient cette "fonctionnalité"), soit un hack d’extension Shell fonctionnerait dans ce cas.
Sur une note de côté, vous pouvez simuler la fonctionnalité en désactivant "afficher les extensions de fichier" sous Options des dossiers, car dans Explorer, un fichier commençant par un point est un fichier avec une extension, mais sans nom.
Je ne pense pas qu'il y ait un moyen de le faire automatiquement, mais vous pouvez essayer d'utiliser la commande ATTRIB pour masquer ces fichiers:
ATTRIB + H
Assurez-vous ensuite que vous avez configuré Explorer pour ne pas afficher les fichiers cachés.