我有這個小工具,我正在幫助管理另一個應用程序的菜單。我需要這個工具來複制快捷方式文件,就像其他文件一樣。不幸的是,它會複製每個文件,但文件的擴展名爲.lnk。有誰知道爲什麼嗎?我似乎無法找到任何這方面的信息。我不是從頭開始創建快捷方式,而是複製現有的快捷方式。我已經嘗試了FileInfo.CopyTo()和File.Copy()方法。它實際上覆制文件,然後拋出異常,這真的很奇怪。如果我用try..catch包裝它(在catch中沒有任何內容),那麼它似乎與除了其中一些失去其快捷方式圖標的例外一起工作。不,這可能幫助不大,但這裏是我的代碼的要點:複製快捷方式到桌面
DirectoryInfo destinationDirectory= new DirectoryInfo(Environment.GetFolderPath(Environment.SpecialFolder.Desktop));
string temppath = Path.Combine(destinationDirectory.FullName, sourceFile.Name);
sourceFile.CopyTo(temppath.FullName, true);
答:
感謝您對阿里我pointint在正確的方向。下面是我落得這樣做:
DirectoryInfo destinationDirectory = new DirectoryInfo(Environment.GetFolderPath(Environment.SpecialFolder.Desktop));
FileInfo shortcut = sourceFile.Directory.GetFiles("*.lnk").FirstOrDefault(f => f.Name == sourceFile.Name) as FileInfo;
if (shortcut != null)
{
File.Copy(shortcut.FullName, Path.Combine(destinationDirectory.FullName, shortcut.Name), true);
}
試試這個,報告結果:VAR快捷=新的DirectoryInfo(Environment.GetFolderPath(Environment.SpecialFolder.Desktop))的GetFiles。 ( 「* .LNK」); – Alireza
返回兩個項目(用於桌面上的兩個快捷方式)的FileInfo []。每個顯示有lnk擴展名。 – bjhuffine