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; // 如果该文件确实存在才返回
}
}
}