質問編集履歴
1
タイトルの変更,調査して分かったことや困っていることの追記
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
SHFileOperation
|
1
|
+
SHFileOperationはネットワークパスを含んでいると失敗するのでしょうか?
|
test
CHANGED
@@ -1,22 +1,42 @@
|
|
1
1
|
###実現したいこと
|
2
2
|
|
3
|
-
SHFileOperation()のWindowsAPIを使って「HUB経由で接続したPCの共有フォルダからフォルダコピー
|
3
|
+
SHFileOperation()のWindowsAPIを使って「HUB経由で接続したPCの共有フォルダからフォルダコピー(フォルダ内のファイルも)」がしたいです。
|
4
4
|
|
5
5
|
|
6
6
|
|
7
7
|
###調査してわかったこと
|
8
8
|
|
9
|
-
1.SHFileOperation()は非推奨となっており、IFileOperation()に置換したほうが良い
|
9
|
+
1.SHFileOperation()は非推奨となっており、IFileOperation()に置換したほうが良い。
|
10
10
|
|
11
11
|
([SHFileOperationからIFileOperationへの移行事例](https://nurs.hatenablog.com/entry/20120519/1337449380)参照)
|
12
12
|
|
13
|
-
2.[28th Embarcadero Developer Camp](https://community.embarcadero.com/images/43816/c2.pdf)のP65によるとIFileOperationはコピー先フォルダがあると失敗することやSHFileOperation()が拡張プレフィックスには対応していない
|
13
|
+
2.[28th Embarcadero Developer Camp](https://community.embarcadero.com/images/43816/c2.pdf)のP65によるとIFileOperationはコピー先フォルダがあると失敗することやSHFileOperation()が拡張プレフィックス(\?)には対応していない
|
14
|
+
|
15
|
+
3.下記操作をすると,SHFileOperation()を使ったフォルダコピーが失敗する。
|
16
|
+
|
17
|
+
0. アプリを起動して,選択画面を表示する。
|
18
|
+
|
19
|
+
0. 選択画面で「ログ表示」ボタンをクリックしてTMemoコントロールにログを表示後,「戻る」ボタンをクリックして,選択画面に戻る。
|
20
|
+
|
21
|
+
0. 選択画面で「ログ取得」ボタンをクリックして,HUB経由のフォルダを共有したPCからログを取得後,「戻る」ボタンをクリックして,選択画面に戻る。→このときはログはフォルダごとコピー成功。
|
22
|
+
|
23
|
+
0. 選択画面で「ログ表示」ボタンをクリックしてTMemoコントロールにログを表示後,「戻る」ボタンをクリックして,選択画面に戻る。
|
24
|
+
|
25
|
+
0. 3で成功したログ取得をフォルダごと削除する。
|
26
|
+
|
27
|
+
0. 選択画面で「ログ取得」ボタンをクリックして,HUB経由のフォルダを共有したPCからログを取得後,「戻る」ボタンをクリックして,選択画面に戻る。→このときはログはフォルダは作成されるが,ファイルはコピーされない。
|
14
28
|
|
15
29
|
|
16
30
|
|
17
31
|
### 困っていること
|
18
32
|
|
19
|
-
業務アプリでSHFileOperation()の戻り値が87(DE_SRC_IS_DVD)となって、「
|
33
|
+
業務アプリでSHFileOperation()の戻り値が~~87(DE_SRC_IS_DVD)~~0x57(10進数87)(ERROR_INVALID_PARAMETER)となって、「パラメータが間違っている」と分かったので,[Using SHFileOperation: What errors are occuring - Stack ...](https://stackoverflow.com/questions/4568015/using-shfileoperation-what-errors-are-occuring)を参考に下記2つの初期化方法を試しましたが,「フォルダコピー」が失敗します。
|
34
|
+
|
35
|
+
・ SHFILEOPSTRUCT tSHFile = { 0 };
|
36
|
+
|
37
|
+
・ZeroMemory(&tSHFile, sizeof(SHFILEOPSTRUCT ));
|
38
|
+
|
39
|
+
Windows10でSHFileOperation()は使用しないほうが良いのでしょうか?ご存じの方、ご教授お願いします。
|
20
40
|
|
21
41
|
|
22
42
|
|