سؤال

لديّ برنامج يتحقق بشكل دوري للملفات الجديدة ، ثم معالجتها.

لأنني أريد أن أكون آمنًا لعدم نسخ الملف عبر FTP ، أقوم بنقل الملف أولاً.
الشيء الغريب هو أنه في Windows Server 2008 يتم نقل الملف ، حتى عند نسخه ، وتنتهي عملية نسخة FTP في الموقع الجديد.

كيف يمكن أن يكون هذا ممكنا؟

لقد اختبرت المشكلة استخدم هذه الخطوط البسيطة من التعليمات البرمجية في ملف VBS:

dim fso
set fso = createobject("Scripting.FileSystemObject")
fso.MoveFile "bigfile.zip", "moved\bigfile.zip"
هل كانت مفيدة؟

المحلول

حسنًا ، عندما تقوم بنقل ملف (في نفس محرك الأقراص) ، فأنت تخبر فقط نظام الملفات بأنه يمكن العثور على الملف في مكان آخر ، فأنت لا تحرك فعليًا أي من البيانات حولها. لذلك أعتقد أن هذه الخطوة تستمر وتخبر نظام الملفات حيث يمكن العثور على الملف الآن ، لكن عملية FTP قد خصصت بالفعل مساحة على Harddrive للبيانات الفعلية ، وبالتالي فإن حقيقة أن الملف قد تم نقله ، فاز " T تؤثر على مكان تخزين البيانات بأي شكل من الأشكال ، وبالتالي كل شيء يعمل.

إذا قمت بنقل الملف إلى محرك آخر ، فسوف أفترض أن شيئًا ما سوف ينكسر في مكان ما.

إذا تمكنت من الوصول إلى العميل ، فيمكنك أن تكتب العميل ملفًا صغيرًا آخر بعد ذلك بالاسم bigfile.zip.complete أو ما شابه ، ويمكن أن ينتظر تطبيق الخادم الخاص بك ذلك قبل البدء في المعالجة ، وبهذه الطريقة ، ستكون متأكدًا تم الانتهاء من).

أو إذا لم يكن لديك إمكانية الوصول إلى العميل ، فربما يمكنك محاولة النظر إلى حجم الملف ، إذا لم يتغير في عدة ثوانٍ أو دقائق ، فأعود أن ينتهي.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top