
いつもお世話になっております。
特定のフォルダにコピーされたデータが自動的に処理された後に消えていく処理がサーバー上で動いています。いわば待ち行列のような性質をもったサーバー上の共有フォルダです。
いままでは特定のユーザしかフォルダへのコピーを行わなかったため、ファイル名の重複による上書きが発生して、処理されるべき内容が漏れてしまったということはありませんでした。
フォルダへのコピー処理を複数のユーザに開放しようとすると、ファイル名が重複する可能性、さらには無意識のうちに上書きコピーをしてしまう可能性も高まることが予想されます。
フォルダを分割してバッチファイルでユニークにしてから対象のフォルダに送るという処理を定期的に行ったとしても、分割されたフォルダ内で重複が起こってしまえば解決にはなりません。
対象のサーバーはWindows2012なので、上書きか名前を変えて保存するかの選択が出来るのですが、「ファイルの情報を比較」したうえで、両方のファイルにチェックを入れて「続行」というステップを経るため、間違いも起きやすいと思われます。
願わくば、自動的に両方を残す、というような設定ができれば有難いのですが、どうもそうしたポリシーは見つかりません。
アプリ上で作るファイルならば、作成時に重複チェックしてから書きこむなどいかようにも処理ができますが、扱うファイルが外部から来たファイルで、扱うのがコンピュータ操作に長けてない人も含まれるため、困っています。
同様のケースに遭遇した方がおられましたら、お知恵を頂きたいと思います。
No.1ベストアンサー
- 回答日時:
いくつか解決策があります。
「防ぐ」ということは何を意味するかによって手段が変わります。
1)バージョン管理する
「ファイル履歴」のようなものを導入する。
戻すときは、管理者が個別にファイルを戻すことになります。
2)上書き承認する
gitのようなイメージで、上書きするときはレビューを必要とする
自動的に複数ファイルを作るというものが思いつかないのですが、そもそも上書き禁止にしちゃえば別名で保存しないといけないので、そうするのがいいのでしょうか。
dyna_1550さん。早々にコメント頂きまして有難うございました。
本当であれば、上書き禁止でエラーになれば気が付いてリネームして貰えればよいのですが、上書き禁止属性にするための事前処理(ファイルのプロパティでリードオンリーにする)自体をもれなくさせるのは無理と考えています。
かと言って、フォルダ自体に上書き禁止属性をしてしまうと、今度はコピー自体が出来なくなってしまうし。
スケジューラで定期的にフォルダ内のファイルに上書き禁止属性を立てるなんてこと位しか思い浮かびません。(-_-;)
gitは本格的に使ったことは無いのですが、利用者にgitクライアントを入れる必要があることと、GUIインタフェイスのものですら、日常の運用には特にシステム開発者以外には敷居が高いような気がします。
意識せずに使えるようなものなのでしょうか?
No.2
- 回答日時:
No1です
設計の常とう手段としては、以下だと思います。
・権限をちゃんと定義し、適切に権限を付与する
・バックアップを設定し、「ここまでは戻れる」というポイントを設定する
問題点は、「上書きしてはいけない人がしてしまう」(間違ってというのは理屈にならない)
間違いまでカバーしたいのであれば、「ロールバックできるようにする」だと思います。ようは、「ファイル履歴」をとれるように仕組みを変更する。
物理的なファイルサーバーは、仕組みを構築する必要があると思います。
フリーであれば、ownCloudなどで構築することができます。
お返事遅れて失礼しました。
履歴を取る、というのは大がかりな話になり、そこまでの知識はないので、コピーした時に、重複チェックを行い、同じ名前がある時に(2)(3)といった名前を後ろに付ける、というスクリプトを作ることにしました。スクリプトの引数をファイル名にして、コピー元をそのスクリプトのアイコンにドラッグするとチェックが動くような仕組みにできるかな、と思って作ったらなんとか動きました。
どうもアドバイス有難うございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excel、同じフォルダ内のExcelファイルの特定シートのみを1つのファイルに集約したい 8 2022/09/07 15:12
- グループウェア 一太郎がイントラで開けません。対処方法を知りたいです。 3 2023/04/04 13:30
- Excel(エクセル) 【VBA】指定フォルダに格納中のテキストファイルをエクセルで処理し結果のエクセルを新規フォルダに保存 1 2022/03/25 14:19
- Windows Vista・XP windows10 フォルダを上書きするときに、元のフォルダを全て削除してコピーする方法 3 2022/05/22 00:53
- Visual Basic(VBA) 複数ファイルのデータの統合について 12 2022/05/14 12:03
- Visual Basic(VBA) あるフォルダーのファイルを違う親フォルダーのサブフォルダーに移したい 11 2023/02/15 19:00
- その他(パソコン・周辺機器) 同じファイル名 上書きしないフリーソフトなどあったら教えて下さい。 仕事で大量の写真などを扱っており 3 2023/05/18 06:43
- Visual Basic(VBA) サブフォルダ(データ)にある複数の.xlsxファイルのSheet3のA2セルの値で01から左側をB2 2 2022/08/14 15:46
- ネットワーク 瞬快 コンソール操作 ローカル端末のファイルをリモート端末にコピーする方法がない? 1 2023/03/17 18:56
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
パソコンに詳しい方教えて下さ...
-
Windows上のファイル操作の履歴...
-
バッチファイルでディレクトリ...
-
Lhaplusが発したと、みられるエ...
-
エクセルが開けません(泣)
-
FTPの更新を定期チェックして通...
-
linuxサーバにファイルをアップ...
-
jarコマンドによるアーカイブフ...
-
visual studio 2008 プロジェク...
-
メール(メーラー)の同期について
-
Zipファイルをエクセルに指定変...
-
別のフォルダにファイルを移動...
-
Batファイルでhostsを追加したい
-
ipadで社内ネットワークに接続
-
ホームページビルダー17のサイ...
-
TCP/IP のパケットの分断と結合...
-
Outlookの「受信日時」「件名」...
-
バックアップの用語
-
シリアル通信時のデータ受信方法
-
CRC-CCITTに関しての仕様とサン...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
パソコンに詳しい方教えて下さ...
-
Windows上のファイル操作の履歴...
-
Zipファイルをエクセルに指定変...
-
バッチファイルでディレクトリ...
-
別のフォルダにファイルを移動...
-
ipadで社内ネットワークに接続
-
どうしたらいいか教えて下さい。
-
Lhaplusが発したと、みられるエ...
-
SystemWalker Centric Manager...
-
複数のテキストファイルの特定...
-
グローバルIPアドレスを取得し...
-
Batファイルでhostsを追加したい
-
CSVファイルのマッピング処理の...
-
ffastun.*って何ですか?
-
コンピュータウイルス:感染源特定
-
データベースファイル 機種変の...
-
xcopyの/dオプションについて
-
指定ファイルをFTPで自動アップ...
-
robocopyの失敗について
-
フォルダ内ファイルの自動削除化
おすすめ情報