我需要从共享文件中获取默认文件图标。我遇到了一些问题,发现了“如何从网络共享文件中获取关联的图标”这个问题。
但是现在我对共享文件有另一个问题,看起来好像它们不存在。这是我的代码:
public static Icon ExtractAssociatedIcon(String filePath)
{
int index = 0;
Uri uri;
if (filePath == null)
{
throw new ArgumentException(String.Format("'{0}' is not valid for '{1}'", "null", "filePath"), "filePath");
}
try
{
uri = new Uri(filePath);
}
catch (UriFormatException)
{
filePath = Path.GetFullPath(filePath);
uri = new Uri(filePath);
}
if (uri.IsFile)
{
if (!File.Exists(filePath))
{
throw new FileNotFoundException(filePath);
}
StringBuilder iconPath = new StringBuilder(260);
iconPath.Append(filePath);
IntPtr handle = SafeNativeMethods.ExtractAssociatedIcon(new HandleRef(null, IntPtr.Zero), iconPath, ref index);
if (handle != IntPtr.Zero)
{
return Icon.FromHandle(handle);
}
}
return null;
}
我总是得到FileNotFoundException
,我现在不知道为什么。filePath
没问题,我可以通过资源管理器访问这些文件。我试图从(我在某处读到它可能有帮助)创建FileInfo
实例,但仍然没有。filePath
我错过了什么?