是否有一个C#等效于FoxPro的addbs()?

时间:2013-04-12 08:26:10

标签: c# string directory filepath visual-foxpro

在Visual FoxPro中。有一个函数addbs(),你传递一个字符串。

如果(修剪)字符串末尾没有反斜杠,则会添加一个反斜杠。如果有反斜杠,它将返回修剪过的字符串。

lcString = 'C:\Example'
lcNewString = addbs(lcString)
?lcNewString

Output:
C:\Example\

C#中是否有等效功能?

5 个答案:

答案 0 :(得分:5)

也许Path课可以帮到你吗?例如,combine()方法。

答案 1 :(得分:1)

正如其他人已经说过的那样,您可能想要使用Path.Combine

但是,您可以轻松创建自己的方法来执行此操作:

public string AddBS(string value)
{
    return value.EndsWith("\\") ? value : value + "\\";
}

为了使它更通用,我建议,制作一个像:

这样的扩展名
public static class StringExtensions
{
    public static string AddSuffix(this string value, string suffix)
    {
        return value.EndsWith(suffix) ? value : value + suffix;
    }
}

答案 2 :(得分:1)

有一个免费的“ Visual FoxPro Toolkit for .NET ”,它有C#和VB库,可以将许多FoxPro函数带入.Net。

http://foxcentral.net/microsoft/vfptoolkitnet.htm

  

Visual FoxPro Toolkit for .NET是一个包含超过225个Visual FoxPro函数的类库,可用于任何.NET语言。包含的VFPToolkitNET.DLL是一个.NET托管代码DLL(不是COM包装器),不需要Visual FoxPro。支持的函数执行速度非常快,因为它们都是用.NET编写的,并编译成托管代码.NET DLL。包括参考和教程独立CHM帮助文件以及使用相同CHM帮助文件的Visual Studio .NET集成动态帮助。在使用任何.NET语言编程时,VFP功能都启用了完整的IntelliSense和动态帮助。使用VFP工具包或.NET,大多数Visual FoxPro函数可以在Visual Basic .NET或任何其他.NET语言中使用。像STRTOFILE()这样的函数只在一行代码中将字符串转换为文件。

此外,它说:

  

Visual FoxPro Toolkit for .NET不教授开发人员Visual Studio .NET编程,但它确实使开发人员能够更快地完成.NET编程,并根据他们熟悉的内容编写更少的代码,并结合这些函数减少编码的方式总体。它不是伪VFP语法,它是“真正的”VFP语法,并且在Visual Basic .NET中最自然地工作,因为它不需要命名空间。仍然必须学习Windows .NET Framework和Visual Basic .NET(或任何.NET语言)。这个工具包的功能是帮助Visual FoxPro开发人员使用.NET,因为对于具有这些功能的.NET编程,学习曲线要​​快得多。 Visual FoxPro Toolkit for .NET不能替代任何.NET语言。它恭维并增强了.NET语言编程的体验和生产力。

答案 3 :(得分:0)

您可以使用以下代码轻松完成此操作:

string lcString = @"C:\Example";

if(!lcString.Substring(lcString.Length -1, 1).Equals(@"\", StringComparison.InvariantCulture))
{
    lcString += @"\";
}

答案 4 :(得分:0)

在这种情况下,我总是使用path.TrimEnd('\\') + "\\"。由于我经常使用该代码,因此我编写了一个扩展方法:

public static string AddTrailingSlash(this string s, char slash = '\\')
{
    return s.TrimEnd(slash) + slash;
}