但使用了.net framework以外的東西,傳了其他語言的路徑時有可能出錯。
筆者而在.net framework裡沒找到轉shortPath的函數,所以只好調用API....
如果.net framework可以直接轉的話就請大大PO上來了。
抓取短檔名 | 複製程式碼(Copy to clipboard) |
using System.Runtime.InteropServices; //調用API
//在class內
[DllImport("kernel32.dll", CharSet = CharSet.Auto)]
public static extern int GetShortPathName([MarshalAs(UnmanagedType.LPTStr)] string path, [MarshalAs(UnmanagedType.LPTStr)] StringBuilder shortPath, int shortPathLength);
//在事件內程式碼
StringBuilder shortPath = new StringBuilder(255);
GetShortPathName("C:\test測試.txt", shortPath, shortPath.Capacity);
沒有留言:
張貼留言