当路径不包含驱动器号时,如何告诉编译器路径是绝对的

Posted

技术标签:

【中文标题】当路径不包含驱动器号时,如何告诉编译器路径是绝对的【英文标题】:How to tell the compiler a path is absolute, when the path doesn't contain a drive letter 【发布时间】:2016-06-23 23:30:24 【问题描述】:

我正在构建一个 Windows 应用程序,它可以在不将它们复制到磁盘的情况下查看相机(可移动设备)上的图片。

大多数通过 USB 连接的相机的问题是它们的路径是相对于 MyComputer 的,这是一个虚拟路径,因此不包含驱动器号(参见 C:\)。

使用“Computer\[Camera Name]\Removable storage\AnotherDirectory\”作为路径使编译器认为我使用的是相对路径: ...\Project\bin\Release\Computer\[相机名称]\Removable storage\AnotherDirectory\

我在Using FolderBrowserDialog on a Removable Device / Removable storage 上找到了一个先前的问题,但我不习惯 COM shell 接口,想知道是否有办法告诉编译器给定路径是绝对路径?

更新

回答理查兹关于如何阅读图片的问题,

首先我按顺序收集所有 jpg 的路径。 然后我用下面的函数映射这个序列:

let loadPic path= 
    let bitmap = new BitmapImage()
    if System.IO.File.Exists path then
        bitmap.BeginInit()
        bitmap.UriSource <- Uri(path)
        bitmap.CacheOption <- BitmapCacheOption.OnLoad
        bitmap.EndInit()
    bitmap

生成一系列位图,然后可以查看。

【问题讨论】:

在 API 级别,除了在 Shell 命名空间(构建在文件系统命名空间之上并大量扩展文件系统命名空间)之外,“路径是相对于 MyComputer 的”。你会更好地描述你如何以编程方式从相机中读取图像数据...... 【参考方案1】:

它们不会被枚举为磁盘。这是不同的东西。

试试这个:

https://github.com/geersch/WPD/blob/master/src/part-3/README.md

这个有如何访问MTP设备的代码示例:

https://bitbucket.org/derekwilson/podcastutilities/src/b18a9926c1dcbfb884b34b9865ebaec96abfdb82/PodcastUtilities.PortableDevices/?at=default

希望对你有帮助!

【讨论】:

以上是关于当路径不包含驱动器号时,如何告诉编译器路径是绝对的的主要内容,如果未能解决你的问题,请参考以下文章

如何判断头文件包含在哪里?

获取pe文件调试符号文件pdb路径

cookie的路径决定服务器在发送请求时候 是否决定发送 当路径匹配时候 则发送给服务器

Java IO详解

为啥当路径满足时 NWPathMonitor 不给出路径更新?

WPF 如何找到资源文件路径包含 # 号的文件