【问题标题】:how to translate windows folder path to linux folder path如何将windows文件夹路径转换为linux文件夹路径
【发布时间】:2012-11-08 12:00:57
【问题描述】:

我有一个在 linux 上运行的应用程序,它从 db 读取图像文件路径并显示它...类似地,还有另一个基于 Windows 的应用程序读取相同的 db 图像文件路径并显示它。我已将 SMB 服务配置为与 windows 共享文件夹...

问题是,当 linux 应用程序存储图像路径时,它使用路径作为 /data/images/file.tip 并且 windows 应用程序无法读取此文件,因为路径不是绝对的......如果 windows 也是如此app 修改它使用的数据库 \server\images 等,

我如何将 windows 路径翻译成 linux,反之亦然...

【问题讨论】:

  • 你有应用程序的源代码吗?

标签: linux


【解决方案1】:

在您的应用程序中,您可以不指定操作系统标志/变量,而只存储图像文件名。

然后根据操作系统,在 XXX 文件夹中查找该文件。

所以将“Image.jpg”存储在 DB 中,在 Windows 应用程序上打开“C:\Image.jpg”,在 Linux 上打开“/home/user/Image.jpg”

【讨论】:

  • 感谢您的回答...这些不是硬编码路径...用户可以指定任何文件夹...通常在 linux 上,他们通过 samba 共享文件夹并将该路径用于 linux 和 windows .如果 windows 应用程序存储图像,那么我如何将其转换为本地 linux 路径,同样如果 linux 存储它,我如何将其转换为 windows 路径。路径和共享名称是用户定义的,它们可以有多个共享。
  • @Kashif 没有通用映射... Samba 可以将任何路径共享为任何共享名称,因此您可能必须开始阅读 smb 配置以尝试制定任何映射。
  • 嗯,有趣...如果您共享某些内容,它会保存在其他人计算机上的某个位置吗?如果是这样,您是否可以这样做 - 保存每个共享文件的文件夹路径,将“\”或“/”替换为破折号,并将编辑后的文件夹路径保存为其他用户计算机中的文件夹。然后将文件分别放在这些文件夹中。 (如果这对你有意义)
  • @Idiot211 感谢您的回复(也感谢大家),并为我迟到的回复感到抱歉。这是我提出的建议,如果您认为这是正确的方法,请告诉我。
  • @Idiot211 基本上,当前系统并非旨在在 linux 和 Windows 应用程序之间共享栅格,但普遍认为它应该可以工作。这是我提出的。很明显,Windows 不能直接共享 Linux 路径,因为 Windows 使用 UNC 路径(如“\\server\share\filepath”)来识别文件/文件夹,而 Linux 不遵循相同的 UNC 语法。唯一的解决方案是两个应用程序都应该支持 UNC 标准。因此,应用程序应先将本机路径转换为 ​​UNC,然后再将其存储到 db 中,反之亦然。
【解决方案2】:

/\ 是特定于操作系统的,因此当您从数据库中检索数据时,如果您在 Windows 中,请先尝试将 / 替换为 \,或者如果您在 Windows 中,请尝试将 \ 替换为 /你在窗户上。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-25
    • 2012-01-27
    • 1970-01-01
    • 1970-01-01
    • 2017-12-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多