問題タブ [shfileoperation]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
windows - 長いファイル名で SHFileOperation FOF_ALLOWUNDO が失敗する
次の関数を使用してファイルをごみ箱に削除しています: (C++、MFC、Unicode)
これは、ほとんどのファイルでうまく機能します。ただし、パスとファイル名が 255 文字を超える場合 (それでも 2048 文字よりはるかに短い場合)、SHFileOperation は 124 を返します。これは DE_INVALIDFILES です。
しかし、何が問題なのですか?私はすべてを100万回チェックしました。パスは二重ヌルで終了します。\\?\ は使用していません。短いファイル名でも機能します。
私は完全にアイデアがありません...
string - delphiでnull区切り文字を使用して文字列を作成するにはどうすればよいですか
私はSHFileOperationを使用していますが、ソースはファイル名がnullで区切られ、全体がdoublenullで終了するpwidecharにすることができます。
widecharの配列を作成でき、必要な情報を保持しますが、関数をpwidecharに変換しようとすると、最初のnullにのみコピーされます。
私は何が間違っているのですか?
delphi - システムコールレベルが正しくありません
SHFileOperation を使用してファイルをごみ箱に削除しています。しかし、「システム コール レベルが正しくありません」というエラーが表示されることがありました。毎回またはすべてのファイルで発生するわけではありません。ランダムな時間にいくつかのランダムなファイル。誰も理由を知っていますか?ありがとう。
更新:ここに私が使用しているコードがあります:
c++ - 文字列を使用してフォルダーをコピーする SHFileOperation
関数ごとにフォルダーをコピーしようとしていますSHFileOperationA
。これが私のコードです。
文字列を2回追加する方法がわかりません\0
。私はこのようなものを試しました。
しかし、それは機能していません。他にもいくつかの組み合わせを試しましたが、どれも機能していません。これを解決する方法を教えてください。
次のようにパスを直接割り当てることで問題を解決できます:-
問題は解決しますが、私の意図は文字列を利用することです。誰でもこれで私を助けてください。
また、可能であれば、文字列定数の直接割り当てsf.pFrom = "D:\\check\\folder4";
が機能し、文字列を使用した割り当てが機能しない理由を誰かに教えてもらえますsf.pFrom = source.c_str( );
か?
前もって感謝します。
copy - ShowMessage を使用した SHFILEOPERATION - C++ ビルダー
x: にマウントされたネットワーク フォルダー (例: x:\games\foldername) からいくつかのフォルダーをローカル パス: d:\program files にコピーするために C++ Builder でこのコードを記述します。次のように shfileopstruct を使用します。
ソース パス (s 変数) は FieldByName("path") を使用してデータベースから取得され、プレフィックス ("x:\games\" と MSDN が示唆するように "\0") が付けられます。SHFILEOPERATION はそのままで正常に動作します。 . しかし、珍しいことは、ShowMessage(path) に関するコード (検証のために持っている) を削除すると、SHFILEOPERATION が失敗することです。
これについて何か提案はありますか?何か不足していますか?未経験なのでよろしくお願いします。前もって感謝します。
winapi - カスタム プログレス バーを使用した SHFileOperation のコピー / C++ ビルダー
C++ Builder と SHFileOperation を使用して、ネットワーク上の場所からアプリケーション (そのフォルダー) をダウンロードします。WinApi には独自のプログレス バーがありますが、プログレス バーを含むカスタム フォームが必要です。
独自の進行状況バーを表示できるように、コピーの進行状況だけを追跡するにはどうすればよいですか? 短い例は間違いなく役に立ちます。ありがとう。
delphi - Delphi XE5 での ShFileOperation
SHFileOperation の使用に問題があります *.mb および *.db ファイルをコピーして削除します
CopyFiles コードはうまく機能し、必要に応じてすべてのファイルをコピーしてフォルダーを作成しますが、DeleteFiles コードを呼び出すと、「bkp」フォルダー内のすべてのファイルが削除されますが、フォルダーは削除されません。
「アクセスが拒否されました」と表示されているフォルダにアクセスしようとすると、アプリケーションを閉じた後、フォルダが削除されます。
ここで私の手順:
delphi - ファイルを再帰的に削除し、使用中のファイルをスキップしますか?
Windows API を使用して、多くのファイルとフォルダーを再帰的に削除しています。UIなしでエラーを抑えて使っています。問題は、これらのファイルのいずれかが使用中の場合、完全に失敗することです。私はその可能性を期待しており、そのようなケースを飛ばしてとにかくこれを続けてほしいと思っています。失敗する 1 つのファイルは、実際には、この削除コマンドを呼び出しているのと同じ EXE です (いずれにせよ、すべてが完了した後に削除されます。
これが私が今していることです:
使用中のファイルのイベントをスキップするにはどうすればよいですか? ドキュメントを見ましたが、これを行うことができるものは何も見つかりません。