如何从绝对路径中获取相对路径

如何从绝对路径中获取相对路径

我的应用程序中有一部分显示用户通过OpenFileDialog加载的文件路径。它占用了太多的空间来显示整个路径,但我不想只显示文件名,因为它可能是模棱两可的。因此,我更愿意显示相对于程序集/exe目录的文件路径。

例如,程序集位于“C:\ProgramFiles\dumy文件夹\MyProgram”,文件位于“C:\ProgramFiles\dumy文件夹\myProgram\data\datafile1.dat”,然后我希望它显示“.\data\datafile1.dat”。如果文件位于“C:\ProgramFiles\dumy文件夹\datafile1.dat”中,则需要“.\datafile1.dat”。但是,如果文件位于根目录或根目录下的1个目录下,则显示完整路径。

你会推荐什么解决方案?雷吉斯?

基本上,我想显示有用的文件路径信息,而不占用太多的屏幕空间。

编辑:只是为了澄清一点。这个解决方案的目的是帮助用户或我自己知道我最后加载的是哪个文件,大概是从哪个目录加载的。我使用一个只读文本框来显示路径。大多数情况下,文件路径比文本框的显示空间长得多。该路径应该是信息丰富,但不够重要,以占用更多的屏幕空间。

亚历克斯·布拉特的评价很好,乔纳森·莱弗勒也是。DavidK提供的Win 32函数只帮助解决部分问题,而不是整个问题,但还是谢谢。至于詹姆斯·牛顿-金的解决方案,我有空的时候再试一试。


繁星coding
浏览 895回答 3
3回答
打开App,查看更多内容
随时随地看视频慕课网APP