我有一个图像管理器应用程序,允许拖放。当拖入图像时,我执行这一行来获取图像的路径和名称。拖放后图像名称元数据有误
public bool GetFileName(out string _filename, DrageventArgs E)
{
_filename = String.Empty;
Array data = ((System.Windows.Forms.IDataObject)e.Data).GetData("FileName") as Array;
...
}
该生产线是从This article拍摄,所以它可能是我水平太先进,但它的工作非常好,我想我的理解不够好,它的所作所为使用它。
但是,我遇到的问题得到正确的图像标题。我怀疑“文件名”的数据可能是原因,因为拖称为“Phare.jpg”的形象,我得到的字符串时是
"C:\Users\\Public\Pictures\SAMPLE~1\LIGHTH~1.JPG".
的“LIGHTH”位基本上是“灯塔”,但在英语......至少是第一个字母。也许我没有拉取正确的数据?有一个更好的方法吗?有没有比我能够尝试拔出的“FileName”更多的数据?
没错。您可能想提及System.IO.Path.GetFullPath()将短名称转换为长名称。 – 2013-03-14 18:22:53
在命令提示符下输入'dir C:\ Users \\ Public \ Pictures \ SAMPLE〜1'时,我得到全名,但它仍然是英文的。我猜这是嵌入在图像中的名称,而不是出现在Windows资源管理器中的名称。 – Felix 2013-03-14 18:34:04
@HansPassant,谢谢 - 在答案中内联。还添加了可能有用的调用来获取属性。 – 2013-03-14 18:45:05