2017年11月
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30    
無料ブログはココログ

« バッチファイルでDEL文字を使う。 | トップページ | pingやwmicなど、改行文字がおかしい(CR+CR+LF)コマンド出力を補正する。 »

2009年9月 2日 (水)

FileSystemObjectの~.Pathがネットワークで文字化け?

FSOの旧版(~5.6)では、共有名に日本語などを使うと、~.Pathが文字化けします。
文字化けパターンからすると、共有名がUnicodeLEなのに、シフトJISだと思って、シフトJIS→Unicode変換しているようです。

そこで、~.Pathの代替関数を作って、~.Path の代わりに GetPathName(~) を使います。

ここで、~はFileまたはFolderオブジェクトです。

Dim fso
Set fso=CreateObject("Scripting.FileSystemObject")
MsgBox GetPathName(fso.GetFolder("\\サーバ名\共有名"))

Function GetPathName(fObject)
If fObject.Attributes And 16 Then
  If fObject.IsRootFolder Then
    GetPathName=fObject.Drive.Path & "\"
  Else
    GetPathName=fso.BuildPath(GetPathName(fObject.ParentFolder),fObject.Name)
  End If
Else
  GetPathName=fso.BuildPath(GetPathName(fObject.ParentFolder),fObject.Name)
End If
End Function

« バッチファイルでDEL文字を使う。 | トップページ | pingやwmicなど、改行文字がおかしい(CR+CR+LF)コマンド出力を補正する。 »