簡體   English   中英

如何將DOS路徑轉換為普通路徑(.net)

[英]How to convert DOS path to normal path (.net)

我有一個使用FileSystemWatcher對象跟蹤本地文件夾上的更改的程序。 問題是,有時在某些環境和情況下(我不知道是哪種情況),該監視程序會在DOS路徑上給我一個事件(“ / Hello / How / Are / You”變成類似於“ / HE〜1 / HO〜1 / AR〜1 / YO〜1“)。

我正在尋找的是一種將這條路徑重新恢復為正常狀態的方法。

或者至少可以告訴我該路徑確實是DOS路徑,因此我可以對條目進行不同的處理。

編輯:它必須在長路徑(+260個字符)上工作,因此Path.GetFullPath(sShortPath)在這里對我不起作用!

Path.GetFullPath (@“ / HE〜1 / HO〜1 / AR〜1 / YO〜1 ”)應該可以滿足您的需求。

最好的方法取決於您要查找的內容,如果您只想訪問一次文件,則8byte文件名將可用於內部文件引用

如果要顯示給用戶或存儲,則有2個選項

  1. Path包含操作路徑所需的大多數工具fullPath = Path.GetFullPath(path1);

  2. FileInfoDirectoryInfo這兩個類提供對文件和目錄信息的持久訪問,盡管它們可以使用任何有效路徑創建,但它們均具有Full name屬性,該屬性提供對完整路徑的訪問

正如其他人所說,如果不用於很長的路徑(+260個字符),Path.GetFullPath(sShortPath)可以正常工作。

這是我遵循的對我有用的鏈接

來自kernel32.dll的GetLongPathName與我一起正常工作,我只需要將255 StringBuilder限制更改為更高的值即可使其與長路徑一起使用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM