2015-11-05 19 views
-2

所以我要附加一些祕密信息,以我的文件在程序和VS2013拋出一個異常,指出:附加的隱藏選項,以一個文件在C#中

An unhandled exception of type 'System.NotSupportedException' occurred in mscorlib.dll 

Additional information: The specified path format is not supported. 

對於線:

string metafile = filename + ":key"; 
StreamWriter metadata = new StreamWriter(metafile); 

我該如何解決這個問題?我需要它,因爲這樣我可以用控制檯用命令「notepad file.txt:key」來檢查它。

+0

的除了文件名怎麼會是祕密呢?你可以添加一個excrypted字符串,但記事本將無法測試它.. – TaW

+2

這聽起來像[XY問題](http://meta.stackexchange.com/a/66378/281313)。我不認爲命名隱藏文件是保存程序選項的正確方法。怎麼樣的註冊表,或者一個可見(但加密)的文件呢? –

+0

http://prntscr.com/8zeh7y這就是我說的,我想要訪問這種文件擴展名。同樣在代碼「文件名+」中:key.txt「會拋出相同的異常... –

回答

1

該StreamWriter構造函數將嘗試打開文件名稱的字符串傳遞給它(https://msdn.microsoft.com/en-us/library/fysy0a4b(v=vs.110).aspx) - 假設這是一個Windows系統,文件名不能包含冒號,因此「路徑格式不支持「異常。

也許嘗試下劃線代替冒號,即:

string metafile = filename + "_key"; 
+0

file.txt:a爲程序創建一個隱藏的」文件「它可以用控制檯打開,並且它隨文件一起移動,所以如果我創建a.txt:a並將它移動到其他地方,並且名稱爲b.txt:a它將具有相同的內容 –

+0

要點在於Windows一般(我假設我們在這裏說Windows,如果不是那麼這是另一回事!)有一些方法可以解決它(例如,你可以回顯一個文件,其中包含非法字符,例如「 echo something> file:illegal.txt「),但是如果在C#中有辦法做到這一點,我並不知道它,託管代碼可能不會允許它。由於默默無聞的安全性,通常取得的成功有限 - 就像其他一些人一樣有人建議,使用某種類型的加密技術可能會更好。無論如何,祝你好運! –

+0

經過半小時的使用谷歌,維基百科等我發現了一個有趣的條目。 https://en.wikipedia.org/wiki/Fork_%28file_system%29#Microsoft –