Esempio n. 1
0
 private static extern bool CreateSymbolicLink(String lpSymlinkFileName, String lpTargetFileName, SYMBOLIC_LINK_FLAG dwFlags);
Esempio n. 2
0
 private static extern bool createSymbolicLink(string lpSymlinkFileName, string lpTargetFileName, SYMBOLIC_LINK_FLAG dwFlags);
Esempio n. 3
0
 public static extern BOOLEAN CreateSymbolicLinkW(
     string lpSymlinkFileName,
     string lpTargetFileName,
     SYMBOLIC_LINK_FLAG dwFlags);
Esempio n. 4
0
 public static void CreateSymbolicLink(string SymlinkFileName, string TargetFileName, SYMBOLIC_LINK_FLAG LinkType)
 {
     if (SymlinkFileName.Length >= MAX_PATH)
     {
         SymlinkFileName = string.Format(@"\\?\{0}", SymlinkFileName);
     }
     if (TargetFileName.Length >= MAX_PATH)
     {
         TargetFileName = string.Format(@"\\?\{0}", TargetFileName);
     }
     if (!createSymbolicLink(SymlinkFileName, TargetFileName, LinkType))
     {
         Marshal.ThrowExceptionForHR(Marshal.GetHRForLastWin32Error());
     }
 }
Esempio n. 5
0
File: Misc.cs Progetto: wanddy/wnmp
        public static bool CreateRelativeLink(string lpSymlinkFileName, string lpTargetFileName, SYMBOLIC_LINK_FLAG dwFlags, bool deleteOldLink = false)
        {
            if (Directory.Exists(lpSymlinkFileName) && !IsSymbolic(lpSymlinkFileName))
            {
                try
                {
                    Directory.Move(lpSymlinkFileName, $"{lpSymlinkFileName}.old");
                    Log.Notice($"{Language.Resource.MOVED} {lpSymlinkFileName} -> {lpSymlinkFileName}.old");
                }
                catch (Exception ex)
                {
                    Log.Notice(ex.Message);
                }
            }
            else if (Directory.Exists(lpSymlinkFileName) && IsSymbolic(lpSymlinkFileName))
            {
                if (!deleteOldLink)
                {
                    return(true);
                }

                Directory.Delete(lpSymlinkFileName);
            }
            return(CreateSymbolicLink(lpSymlinkFileName, lpTargetFileName, dwFlags));
        }