分類:[C#]
2011/07/20(Wed) 14:27:32 編集(投稿者)
2011/07/20(Wed) 14:27:19 編集(投稿者)
<pre><pre>DocuWorks Development Tool Kit 7.2を使っています。
複数のDocuWorks文書を合成して1つのDocuWorks文書を生成する関数、
public static int XDW_MergeXdwFiles(string[] inputPaths,string outputPath);
にて、以下の様な現象が起きてしまいます。
<現象>===============================
inputPathsのフルパス名に日本語が含まれると、XDW_E_INVALID_NAMEまたは、XDW_E_FILE_NOT_FOUNDが発生する。
ちなみに、
inputPaths:日本語含まない
outputPath:日本語が含まれる
という場合は正常に動作します。
===================================
どうかよろしくお願いします。
<環境>
OS:WindowsXP sp3
Microsoft Visual C# 2010
<ソース>
void Merge_XDWFiles(string xdwfilepath)
{
int rtn_xdw;
string out_xdw;
//出力ファイル
out_xdw = xdwfilepath + "\\マージファイル.xdw";
//DirectoryInfoを生成
DirectoryInfo di = new DirectoryInfo(xdwfilepath);
//ディレクトリ内のファイル一覧を取得
FileInfo[] fiArr = di.GetFiles();
//配列にファイル一覧を取得
string[] str_filenames = new string[fiArr.Length];
for (int i = 0; i < (fiArr.Length); i++)
{
str_filenames[i] = fiArr[i].FullName;
}
//名前順にソート
System.Array.Sort(str_filenames);
//XDWファイルをマージ
rtn_xdw = Xdwapi.XDW_MergeXdwFiles(str_filenames, out_xdw);
if (rtn_xdw != 0)
{
sb_messages.Append(error_code(rtn_xdw) + "\r\n");
}
}
</pre></pre>