2012-08-09 83 views
2

我需要規範化文件名,使其不包含任何不可移植的字符。有portable_file_name但只是檢查並返回布爾。我需要無論如何將給定的字符串轉換爲可移植的名稱來創建文件。boost :: filesystem normalize filename

有沒有可重用的作品?

回答

0

我假定您的意思是某些操作系統(例如Mac OS 9)上的某些字符(*:; \「?<>/\ |)可以作爲文件名或路徑名字符接受,但不能接受其他字符(例如Windows XP),這是正確的嗎?

如果是這樣,你可能應該自己進行字符轉換。我過去通過使用正則表達式來查找和替換不可接受的文件名字符。破折號或東西,所有的目標操作系統上工作。然後,你可以放心地使用這些文件上都

+0

顯然小功能函數可以很容易寫出來。但我想避免,因爲如果相同的可重複使用已經存在並且正在實踐,爲什麼要重新創造同一輪。 – 2012-08-09 16:23:05

0

試試這個:

boost :: filesystem3 :: path portable_file_name;

portable_file_name.normalize();

相關問題