Kelp-Space 是記錄一些生活雜事的Blog
如有任何程式設計的問題歡迎到 飛特技術論壇 討論

2008-10-25

抓取短檔名

C#是使用unicode所以遇到日文或其他語言的路徑都不太會發生問題。
但使用了.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);

沒有留言:

張貼留言