private static bool CheckJuntion(string bn, string an, out string rsn) { try { if (!JunctionPoint.Exists(an)) { rsn = "설정이 필요합니다"; } else { if (!string.Equals(JunctionPoint.GetTarget(an), bn)) { rsn = "다른 프로그램에서 설정되어 있을 수 있습니다"; } else { rsn = "정상입니다"; return(true); } } } catch { // 이거 정션이 아니네 rsn = "다른 프로그램이 만든 디렉토리가 있습니다"; } return(false); }
internal static Result Check(string srcname, string tgtname) { try { if (!JunctionPoint.Exists(tgtname)) { return(Result.NotExist); // 설정이 필요함 } else { if (!string.Equals(JunctionPoint.GetTarget(tgtname), srcname)) { return(Result.NotEqual); // 다른 프로그램에서 설정 } return(Result.Ok); } } catch { // 정션이 아님 return(Result.NotJunction); // 다른 프로그램이 만든 디렉터리 } }
private static void MakeJunction(string bn, string an) { if (Directory.Exists(an)) { if (JunctionPoint.Exists(an)) { JunctionPoint.Delete(an); } else { DirectoryInfo di = new DirectoryInfo(an); FileInfo[] fs = di.GetFiles("*.*", SearchOption.AllDirectories); foreach (var f in fs) { f.Attributes = FileAttributes.Normal; } Directory.Delete(an, true); } } JunctionPoint.Create(bn, an, true); }
internal static void Make(string srcname, string tgtname) { if (Directory.Exists(tgtname)) { if (JunctionPoint.Exists(tgtname)) { JunctionPoint.Delete(tgtname); } else { DirectoryInfo di = new DirectoryInfo(tgtname); FileInfo[] fs = di.GetFiles("*.*", SearchOption.AllDirectories); foreach (var f in fs) { f.Attributes = FileAttributes.Normal; } Directory.Delete(tgtname, true); } } JunctionPoint.Create(srcname, tgtname, true); }