問題:我正在開發一個程式來獲取樹的輸出并在不同的系統上重新創建目錄結構。我的代碼適用于我隨機創建的檔案測驗集。但是,在處理具有詳細/長檔案夾名稱的系統時,我在此代碼上遇到了 System.IO.IOException '(檔案名或擴展名太長)
String path = @".\" PreviousDirectory @"\";
int errorCheck = path.Length;
Directory.SetCurrentDirectory(path, PathFormat.LongFullPath);
嘗試的解決方案:我發現這個執行緒描述了幾個選項。我已經嘗試了很多這些我目前沒有使用 System.IO 我正在使用 AlphaAeonis.Win32.Filesytem 據說它支持路徑中的 32,000 個字符,但是我的錯誤發生在 282 個字符長的路徑上。
我還嘗試使用 .Net Framework 4.6.2 或更高版本,它洗掉了路徑限制。我在 Visual Studio 2017 中將目標框架更改為 4.6.2,我還安裝了 .NET SDK 6.0.0。我的 app.config 檔案控制 Visual Studio 如何運行代碼,如下所示
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2"/>
</startup>
<runtime>
<AppContextSwitchOverrides value="Switch.System.IO.UseLegacyPathHandling=false"/>
</runtime>
如果我更改為除 version = v"4.0" 以外的任何內容,盡管安裝了更高版本的框架,但仍會要求我安裝該版本的 .NET。我假設 v4.0 是實際運行的。
問題:
一種。如何確保所有目錄功能都使用匯入的 Alphaleonis 庫中的 Override?
灣 如何確保運行時的最低 .Net 版本?
C。我還能設定什么來允許長路徑?
uj5u.com熱心網友回復:
解決方案是從 .NET Framework 切換到 .Net Core。感謝 pcalkins
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/364655.html
