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

わんくま同盟

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

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


(過去ログ 37 を表示中)
■19291 / )  ファイルのコピーができません
□投稿者/ たくあん (1回)-(2008/05/21(Wed) 19:43:50)

分類:[VB.NET/VB2005] 

とても困っています。
よろしくお願いします。

APIを使ってファイルのコピーをしたいと思っています。
ところが、「ファイルをコピーできません。送り側のファイルまたはディスクから読み取れません。」
というエラーになってしまいます。
ちなみにコピー元ファイルの存在は確認済みです。

ソースは下記のようにしました。
--------------------------------------------------------------------------------------------
'APIの宣言
Private Declare Function SHFileOperation Lib "shell32.dll" (ByRef lpFileOp As SHFILEOPSTRUCT) As Integer

'構造体
<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Ansi, Pack:=1)> _
Private Structure SHFILEOPSTRUCT
Dim hwnd As IntPtr
Dim wFunc As Integer
<MarshalAs(UnmanagedType.LPStr)> Dim pFrom As String
<MarshalAs(UnmanagedType.LPStr)> Dim pTo As String
Dim fFlags As Short
<MarshalAs(UnmanagedType.Bool)> Dim fAnyOperationsAborted As Boolean
Dim hNameMappings As IntPtr
<MarshalAs(UnmanagedType.LPStr)> Dim lpszProgressTitle As String
End Structure

'使用個所
Dim udtFileOp As SHFILEOPSTRUCT

'' 構造体の設定
With udtFileOp
.fFlags = mlngOperationFlg
.hwnd = mlngTarget
.pFrom = strFrom
.pTo = strTo
.wFunc = lngFunc
End With
Ret = Not CBool(SHFileOperation(udtFileOp))

-------------------------------------------------------------------------------------
ネットで調べたところ、「pFromとpToにそれぞれの末尾にNullを二つ結合すると成功した」とあったので試しましたがやはり駄目でした。
もう私ではどこがおかしいのか皆目検討つきません。
どなたかよろしくお願いします。
返信 編集キー/


管理者用

- Child Tree -