Win7では、API関数SHFileOperationを使用してファイルをコピーできません。
Windows 7でAPI関数SHFileOperationを使用してファイルをコピーする際には、以下の問題に遭遇するかもしれません:
- 権限の問題:プログラムがファイルをコピーできるように、対象フォルダに十分な権限があることを確認してください。管理者権限を持たない場合、システム保護されていないフォルダにファイルをコピーしてみてください。
- ファイルパスの問題:ファイルパスを渡す際は、正しいパス情報であることを確認してください。パスは絶対パスであり、ファイル名で終わるようにしてください。例:「C:\folder\file.txt」。
- リソースの競合:ターゲットフォルダに同じ名前のファイルやフォルダがないことを確認してください。同じ名前のファイルやフォルダがある場合、コピー操作が失敗する可能性があります。
- 目標フォルダが存在しない場合、ファイルをコピーするにはSHFileOperation関数が使用できません。目標フォルダが存在し、パスが正しいことを確認してください。
- パラメータ設定の問題:SHFILEOPSTRUCT構造体内のパラメータが正しく設定されていることを確認します。例えば、bAnyOperationsAbortedフラグがFALSEに設定されていることを確認し、ユーザーが操作をキャンセルすることによってコピーが失敗しないようにします。
もし上記の手順でも問題が解決しない場合は、CopyFile関数を使用したり、.NETフレームワークの提供するファイル操作方法を使用したり、ファイルコピー操作を処理するためにサードパーティーライブラリを使用するなど、他の方法を試してみることをお勧めします。