다른 응용 프로그램의 메뉴를 관리하는 데 도움이되는이 작은 도구가 있습니다. 다른 파일처럼 바로 가기 파일을 복사하려면이 도구가 필요합니다. 불행히도 모든 파일을 복사하지만 확장자는 .lnk 인 파일입니다. 아무도 이유를 아나요? 나는 이것에 관해 무엇인가 발견 할 수 없다. 나는 처음부터 바로 가기를 만들지 않고, 기존의 것을 바로 복사하고있다. FileInfo.CopyTo() 및 File.Copy() 메서드를 시도했습니다. 실제로 파일을 복사 한 다음 실제로 이상한 예외를 throw합니다. 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