Windows ไม่ใช้ระเบียบการ dot-fileสำหรับไฟล์ที่ซ่อน อย่างไรก็ตามแอปพลิเคชั่น Windows จำนวนมาก (ส่วนใหญ่เป็น opensource / cross-platform) ใช้ไฟล์และโฟลเดอร์ที่มีการประชุมนี้ ฉันจะทำให้ Windows Explorer ซ่อนจุดไฟล์เหล่านี้โดยอัตโนมัติได้อย่างไร
Windows ไม่ใช้ระเบียบการ dot-fileสำหรับไฟล์ที่ซ่อน อย่างไรก็ตามแอปพลิเคชั่น Windows จำนวนมาก (ส่วนใหญ่เป็น opensource / cross-platform) ใช้ไฟล์และโฟลเดอร์ที่มีการประชุมนี้ ฉันจะทำให้ Windows Explorer ซ่อนจุดไฟล์เหล่านี้โดยอัตโนมัติได้อย่างไร
คำตอบ:
ATTRIB +H /s /d C:\.*
เป็นคำสั่งที่จะซ่อนอะไรไดเรกทอรีรวมที่ขึ้นต้นด้วยจุด
การทำเช่นนี้จะไม่แสดงรายการไฟล์ (ตามที่ระบุไว้ด้านล่าง) แต่จะกดทุกไฟล์ที่สามารถเข้าถึงได้และใช้แอททริบิวที่ซ่อนอยู่
เมื่อเสร็จแล้วคุณสามารถตรวจสอบให้แน่ใจว่าตัวเลือกโฟลเดอร์ถูกตั้งค่าให้ซ่อนไฟล์ที่ซ่อน คลิกที่เริ่มต้นพิมพ์และกดfolder options
Enterคลิกที่ดูแท็บแล้วเลือกไม่แสดงไฟล์ที่ซ่อนโฟลเดอร์หรือไดรฟ์ภายใต้ไฟล์และโฟลเดอร์ \ ไฟล์และโฟลเดอร์ที่ซ่อนอยู่ กดใช้จากนั้นตกลง (หรือเพียงแค่ตกลง )
Users
โฟลเดอร์ของฉันมีความกตัญญูรู้คุณ
CreateFile
เรียกไฟล์ Windows ด้วยCREATE_ALWAYS
แต่ไม่มีFILE_ATTRIBUTE_HIDDEN
แฟล็กที่ระบุไว้อย่างชัดเจนการดำเนินการจะล้มเหลวในไฟล์ที่ซ่อน เครื่องมือบางอย่างตระหนักถึงเรื่องนี้ แต่ด้วยบางอย่าง (ขออภัยจำไม่ได้ว่าสิ่งที่ฉันมีปัญหาด้วย) เกิดขึ้นอย่างเงียบ ๆ และปัญหาที่สังเกตเห็นได้อย่างเดียวคือการตั้งค่าหรือบันทึกไม่ได้รับการปรับปรุง ตรวจสอบรายละเอียดเพิ่มเติมได้ที่นี่เช่น: stackoverflow.com/a/13215998/116546
ง่าย:
ใน Windows Explorer
.folder
คุณต้องการซ่อน;properties
จากนั้นคลิกที่general
แท็บhidden
คลิกที่เสร็จสิ้น
PS ตรวจสอบเฉพาะใน Windows 7 Professional PPS ฉันสังเกตเห็นคำถามของคุณที่ขอให้ทำสิ่งนี้โดยอัตโนมัติ เห็นได้ชัดว่านี่จะไม่ลดลง แต่ผู้อ่านอาจพบว่ามีประโยชน์
เป็นไปได้ใน C # โดยใช้ System.IO.FileSystemWatcher รหัสจะเป็นอะไรเช่นนี้ เพียงรวบรวมและวางไว้ในโฟลเดอร์เริ่มต้น แต่รหัสนี้ไม่ได้ซ่อนไฟล์ที่มีอยู่แล้ว ดังนั้นเรียกใช้รหัสแรกจากลุคและมากกว่ารหัสนี้ คุณต้องใช้ System.IO และ 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 จะซ่อนไฟล์ด้วยซ่อนหรือตั้งค่าสถานะระบบ หรือไฟล์อาจถูกซ่อนโดยใช้ ACL Windows ไม่ซ่อนไฟล์ตามชื่อไฟล์
หากต้องการให้ Windows ซ่อนไฟล์โดยใช้ชื่อไฟล์คุณจะต้องสร้างสถานที่อย่างชัดเจน อาจเป็นไดร์เวอร์ระบบไฟล์ (เป็นเรื่องปกติที่ไวรัสจะมี "คุณสมบัติ" นี้) หรือแฮ็กส่วนขยายของเชลล์จะทำงานในกรณีนี้
ในบันทึกย่อด้านข้างคุณสามารถปลอมคุณลักษณะได้โดยปิด "ดูนามสกุลไฟล์" ภายใต้ตัวเลือกโฟลเดอร์เนื่องจากเป็น Explorer ไฟล์ที่ขึ้นต้นด้วยจุดคือไฟล์ที่มีนามสกุล แต่ไม่มีชื่อ
Folder Options
นี่คือตัวเลือกที่เกี่ยวข้องเท่านั้น: View
> [ ] Hide extensions for known file types
>
ฉันไม่คิดว่าจะมีวิธีทำให้เกิดขึ้นโดยอัตโนมัติ แต่คุณสามารถลองใช้คำสั่ง ATTRIB เพื่อซ่อนไฟล์เหล่านั้น:
ATTRIB + H
จากนั้นตรวจสอบให้แน่ใจว่าคุณได้กำหนดค่า Explorer ให้ไม่แสดงไฟล์ที่ซ่อนอยู่