いつもお世話になっております。
現在仕事で作っているiniファイルの読み込みメソッドについて質問です。
GetPrivateProfileStringメソッドを使ってiniファイルの読み込みを行っています。
通常の読み込みは問題なくできるのですが、ファイルパスが256バイト以上の場合、エラーでうまく読み込むことができません。
調べた結果、MAX_PATH制限が関係しているのだと思い、UNCを使ってファイルパス頭に\?\を付けたりといろいろ試してみたのですが、どうもうまく読み込みができません。
うまく読み込みができない原因、対処法がわかれば教えていただきたいです。
よろしくお願いいたします。
###該当のソースコード
<DllImport("Kernel32.DLL")> _ Public Shared Function GetPrivateProfileString( _ ByVal lpAppName As String, _ ByVal lpKeyName As String, _ ByVal lpDefault As String, _ ByVal lpReturnedString As System.Text.StringBuilder, _ ByVal nSize As Integer, _ ByVal lpFileName As String) As Integer End Function Public Shared Function GetIni(iFile As String, iSection As String, iKey As String, _ ByRef oValue As String, Optional ByRef oErrMsg As String = "") As Boolean Dim lStr As New System.Text.StringBuilder Const lNum As Integer = 256 '--------------------------------------------------- Try '指定した情報をINIファイルから取得 If GetPrivateProfileString(iSection, iKey, "", lStr, lNum, iFile) > 0 Then oValue = lStr.ToString Else Throw New ArgumentException("Exception Occured") End If Catch lEx As Exception oErrMsg = "ファイル名=" & iFile & vbCr & _ "セクション=" & iSection & vbCr & _ "キー=" & iKey Return False End Try Return True End Function
###補足情報(言語/FW/ツール等のバージョンなど)
Visual Studio 2012を使用しています。

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/09/18 23:29