iT邦幫忙

0

請問 windows 10 要如何刪除放快捷但已失效的共享連結,每次右鍵都會卡死

  • 分享至 

  • xImage

請問 windows 10 要如何刪除放快捷但已失效的共享連結,每次右鍵都會卡死
只能重開 explorer 才能解決,並且也不能刪除(崩潰...)

xxx

xxx

搜尋 google 沒看到有用資訊:

xxx

zero iT邦好手 1 級 ‧ 2020-09-29 13:52:51 檢舉
給你關鍵字 自己找 "歷程記錄"
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

5
japhenchen
iT邦超人 1 級 ‧ 2020-09-29 12:42:39
最佳解答

找不到工具,我都自己寫......C# Console

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;

namespace 清除無效連結
{
    class Program
    {
        static void Main(string[] args)
        {
            List<string> filesAll = new List<string>();
            var drvAll = DriveInfo.GetDrives();
            foreach (var drv in drvAll.Where(p => p.DriveType == DriveType.Fixed))  // 列舉所有電腦上的"硬碟"
            {
                取得所有檔案(filesAll, ".lnk", drv.Name); // 從磁碟機根目錄開始抓檔,用遞迴
            }
            //把所有LNK檔做檢查
            foreach (var f in filesAll)
            {
                string lnkFolder = GetLnkTarget(f); // 取得捷徑所指向的資料夾
                if (!Directory.Exists(lnkFolder))
                {  // 如果這個資料夾不存在.......
                    Console.WriteLine(f);  // 印出來 或 要殺要剮 隨便你
                    // 刪除 File.Delete(f);
                }
            }
            Console.ReadKey();
        }
        
        private static void 取得所有檔案(List<string> Files, string keyword = "", string root = @"c:\")
        {
            var di = new DirectoryInfo(root);
            foreach (var f in di.GetFiles("*.*", SearchOption.TopDirectoryOnly)) // 列舉所有檔案
            {
                if (keyword == "" || (keyword != "" && f.Name.Contains(keyword))) // 如果符合關鍵字 或 關鍵字是空的(脫褲子放PP)
                {
                    Files.Add(f.FullName);  // 加入清單
                }
            }
            foreach (var d in di.GetDirectories())  // 列舉子目錄
            {
                try
                {
                    取得所有檔案(Files, keyword, d.FullName); 
                }
                catch(Exception ex)
                {
                    //Console.WriteLine(ex.Message); // 不處理錯誤,應該都是資料夾無權限可開啟
                }
            }
        }
        public static string GetLnkTarget(string lnkPath)
        {
            var shl = new Shell32.Shell();         // 專案要加入參考 %windows%\system32\shell32.dll
            lnkPath = System.IO.Path.GetFullPath(lnkPath);
            var dir = shl.NameSpace(System.IO.Path.GetDirectoryName(lnkPath));
            var itm = dir.Items().Item(System.IO.Path.GetFileName(lnkPath));
            var lnk = (Shell32.ShellLinkObject)itm.GetLink;
            return lnk.Target.Path;
        }
    }
}

看更多先前的回應...收起先前的回應...

我的天,大神您連這個也會!

雷伊 iT邦高手 1 級 ‧ 2020-09-29 14:17:53 檢舉

這絕對要列到教科書

我思故我在
我涉獵的很廣,但都不專精罷了,我手上還有幾項純娛樂用的side projects,沒事寫來練練手...
http://music.mihodb.com/taiwan.html
http://music.mihodb.com/main.php
........其他涉及工作的恕刪...

student iT邦新手 2 級 ‧ 2020-09-29 17:10:15 檢舉

弱弱的請問這個要怎麼讓他變成執行檔呢...

student
安裝Visual Studio 2019 Community(免費合法使用),安裝時勾選NET桌面版開發,語言支持也勾上C#
https://visualstudio.microsoft.com/zh-hant/vs/community/

C#想學的話,要花些時間心思來學哈,沒速成的方法

student iT邦新手 2 級 ‧ 2020-09-30 08:32:09 檢舉

@japhenchen 感謝指導

我要發表回答

立即登入回答