お世話になります。
現在、ListViewにドラッグ&ドロップで様々なファイル名を格納し、ボタンクリックイベントで規定のディレクトリにコピーする機能を作成しております。
その中で、ListView内のファイル名をダブルクリックすると読み取り専用で開かれるようにしたいのですが、
現ロジック--------------------------------------------------
CreateObject("Shell.application").ShellExecute(ファイル名)
-----------------------------------------------------------
上記の書き方だと、確かに開くのですが読み取り専用という指定がないため、簡単に上書きできてしまいます。
読み取り専用にするには、どこで指定すべきでしょうか?
よろしくお願いいたします。
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
その1。
簡単だが問題がある方法1.ファイル属性を取得する。
2.ファイル属性に「読み取り専用」を付加する。
3.現在のロジックでファイルを開く。
4.閉じられたら、ファイル属性を1で取得した属性に戻す。
長所
ファイル属性の取得と変更のみで実装可能。
問題点
・4の作業が行われないままプログラムが強制終了したり、PCをリセットしたりすると、オリジナルファイルの「読み取り専用」が残ってしまう。
・開く際に起動されるアプリケーションが任意で自由な為に「読み取り専用属性が付いたファイルを開こうとすると、エラーになったり、開かずに無視してしまうアプリケーション」が存在する可能性がある。
・アプリケーションによっては、読み取り専用の属性が付いていたら、警告を出すだけで読み取り専用を無視して上書きしてしまう物がある。
・ファイルの属性を変更出来る権限が無いと、うまく動かない。
その2。複雑だが確実な方法
1.システムの「一時ファイル」のフォルダ位置を取得する。
2.そのフォルダに開きたいファイルをコピーする。
3.コピー先ファイルの「読み取り専用」の属性は解除しておく。
4.現在のロジックで「一時ファイルのフォルダにコピーした複製ファイル」を開く。
5.閉じられたら、コピー先ファイルを削除する。
長所
・元ファイルは「コピー元として読むだけ」なので、アプリケーションで何をされようが影響を受けない。上書きされたって平気。
・5の作業が行われないままプログラムが強制終了したり、PCをリセットしたりしてファイルが残っても、ディスクのクリーンアップなどで「一時ファイルフォルダを掃除出来る」ので、事後処理が楽。
問題点
・開きたいファイルが巨大な場合、コピー(複製の作成)に時間が掛かったり、一時ファイルフォルダに収まらない場合があり、開けない可能性がある。
その3。上記2つの方法をファイルの大きさで切り換える方法
1.ファイルの大きさを取得する。
2-A.コピー(複製の作成)に時間がかかりそうな大きさ、または、一時ファイルフォルダに収まらない大きさの場合、上記「その1」の方法で開く。
2-B.そうじゃなかったら、上記「その2」の方法で開く。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Word(ワード) PCで作ったwordをスマホで編集しようとすると「このファイルは読み取り専用です。」と表示される。 3 2023/05/30 14:51
- システム 外付けHDDの初期化について 4 2023/03/05 21:19
- システム 外付けHDDの初期化について 4 2023/03/05 20:00
- その他(プログラミング・Web制作) pythonでクラスで複数のメソッドを利用する方法 2 2022/04/15 04:17
- Excel(エクセル) vba レジストリの値を読み込教えてください教えてください 1 2023/07/14 14:09
- USBメモリー・SDカード・フラッシュメモリー USBの読み取り専用を解除する方法 4 2022/12/04 15:47
- PHP ファイルアップロードに関してのセキュリティについてアドバイスお願い致します 1 2023/08/20 00:25
- Excel(エクセル) ExcelのVBAでWordを読み取り専用で開いて、見たいページに自動で移動する方法を教えて頂きたい 4 2022/07/27 10:39
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/05/24 08:33
- Visual Basic(VBA) Excelのマクロについて教えてください。 作業フォルダ内に2つのファイルがあります。 このファイル 2 2023/07/09 13:40
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで複数のコメントのサ...
-
パワポでスライドをコピーでき...
-
Vba初心者です。下記のコード助...
-
frxファイルの役目
-
xcopyでのバッチコピー方法でコ...
-
バッチファイル XCOPYで上書き...
-
エクセルVBAで開いているファイ...
-
エクセルのハイパーリンクがコ...
-
ファイルサーバ上のファイルが...
-
vbsでExcelのシートをコピーす...
-
VBScript フォルダ以下からフ...
-
バッチファイル 別ファイルにリ...
-
bat 同名ファイルコピー時にリ...
-
エクセルのマクロについて教え...
-
Excelのマクロについて教えてく...
-
[エクセル]コピーするとオブジ...
-
WinAPIのGetDIBitsでディスプレ...
-
現在のブックを閉じないで、マ...
-
開いている別のファイルにExcel...
-
同じファイル名 上書きしないフ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで複数のコメントのサ...
-
バッチファイル XCOPYで上書き...
-
frxファイルの役目
-
エクセルVBAで開いているファイ...
-
エクセルのハイパーリンクがコ...
-
[エクセル]コピーするとオブジ...
-
バッチファイル 別ファイルにリ...
-
Vba初心者です。下記のコード助...
-
ファイルサーバ上のファイルが...
-
Gitについて質問。 クローンし...
-
エクセル2010、図が大きすぎま...
-
バッチファイルのコピーで
-
現在のブックを閉じないで、マ...
-
エクセルのマクロについて教え...
-
vbsでExcelのシートをコピーす...
-
同じファイル名 上書きしないフ...
-
アクセス クエリを別のファイ...
-
マインクラフトPCをプレイしよ...
-
xcopyでのバッチコピー方法でコ...
-
開いている別のファイルにExcel...
おすすめ情報