C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: ファイル名の中に半角空白があると、そこで切れてしまう


(過去ログ 121 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■72260 / inTopicNo.1)  ファイル名の中に半角空白があると、そこで切れてしまう
  
□投稿者/ くも (10回)-(2014/05/29(Thu) 10:52:50)

分類:[VB.NET/VB2005 以降] 

ワードパッドを起動してデータファイルを表示させるものです
    Dim FLD As String
    FLD = DR1 + TITLEX + ".TXT"
    Dim PR As System.Diagnostics.Process = _
      System.Diagnostics.Process.Start("C:\Program files\Windows NT\Accessories\wordpad.exe", FLD)

TITLEXは、『DEMO _Xz』という名前で途中に半角空白があります
しかし上記を起動すると
----------------------------------------------------
・・・DEMO
このファイルが見つかりません
パスとファイル名が正しいかどうか確認してください
----------------------------------------------------
とエラー表示されます
つまり半角空白以後が切れてないのです
FLDの中には『…DEMO _Xz…』が代入されていることは確認しました
また全角空白だったらうまくいきます
半角空白はどのように対処したらいいのでしょうか
よろしくお願いいたします

引用返信 編集キー/
■72263 / inTopicNo.2)  Re[1]: ファイル名の中に半角空白があると、そこで切れてしまう
□投稿者/ 魔界の仮面弁士 (29回)-(2014/05/29(Thu) 11:06:01)
No72260 (くも さん) に返信
> 半角空白はどのように対処したらいいのでしょうか

GetShortPathName API で、空白を含めない代替名を取得してそれを使うか
http://dobon.net/vb/dotnet/file/getshortpath.html


もしくは、
 Process.Start("wordpad.exe", """" & FLD & """")
のように、パスの両端を「"」で囲むようにすれば良いかと思います。


なお、wordpad の場合は、この「"」で囲む方法が使えますが、
引数中の空白の解釈の仕方はアプリケーションによって異なるため、
他のアプリに渡す場合には、実際に渡せるかどうか検証する必要があるでしょう。
引用返信 編集キー/
■72264 / inTopicNo.3)  Re[2]: ファイル名の中に半角空白があると、そこで切れてしまう
□投稿者/ くも (11回)-(2014/05/29(Thu) 11:32:42)
No72263 (魔界の仮面弁士 さん) に返信


>  Process.Start("wordpad.exe", """" & FLD & """")
> のように、パスの両端を「"」で囲むようにすれば良いかと思います。


この方法でうまくいきました

どうもありがとうございました

解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -