using System.IO; namespace PdmSwPlugin.Common.Util { /// /// 专门处理工程图的文件名的类 /// public static class EngineeringDrawingFile { /// /// 根据一个模型文件的全路径名得到其 2D 工程图的全路径名 /// 只有零件才会有工程图,装配体是没有的 /// 本方法不检查工程图文件是否存在 /// 特别更新:装配体也有可能有工程图 /// /// 模型文件的全路径名 /// 模型文件 2D 工程图的全路径名 public static string Get2DFileName(string sldFileName) { if (string.IsNullOrEmpty(sldFileName)) { return null; } string originalExt = Path.GetExtension(sldFileName); if (string.Compare(originalExt, FileExtentionChecker.DrawingExtentionInLowerCase, true) == 0) { // 如果本身就是工程图就直接返回 return sldFileName; } else if (string.Compare(originalExt, FileExtentionChecker.PartExtentionInLowerCase, true) == 0 || string.Compare(originalExt, FileExtentionChecker.AssemblyExtentionInLowerCase, true) == 0) { return sldFileName.Replace(originalExt, FileExtentionChecker.DrawingExtentionInLowerCase); } else { return string.Empty; } } /// /// 根据一个模型文件的全路径名得到其 2D 工程图的全路径名,文件必须存在 /// 只有零件才会有工程图,装配体是没有的 /// 特别更新:装配体也有可能有工程图 /// /// 模型文件的全路径名 /// 模型文件 2D 工程图的全路径名,如果文件不存在会返回空 public static string Get2DFileNameIfExisting(string sldFileName) { string drawingFileName = Get2DFileName(sldFileName); if (string.IsNullOrEmpty(drawingFileName) || !File.Exists(drawingFileName)) return string.Empty; else return drawingFileName; // 如果该文件确实存在才返回 } } }