سؤال

أنا أستخدم Process.start لتشغيل Convert.exe. الغرض من هذا البرنامج هو تحويل جميع الملفات الموجودة في مجلد EXE. لذلك عندما أستخدمه عادةً ، أقوم بنسخ ملف في نفس المجلد مثل Convert.exe ثم تشغيل convert.exe. سيقوم Convert.exe بإنشاء ملف "تم تحويله" جديد في نفس المجلد.

أحاول أتمتة هذه العملية الشاقة. يحدد المستخدم ملفًا يحتاج إلى تحويله من FOLDERA ، أقوم بنسخه إلى نفس المجلد حيث يكون Convert.exe وأنا أستخدم Process.Start (Convert.exe) لتشغيله. فقط لتوضيح ، هذا "convert.exe" لا يقبل أي وسيطات.

المشكلة: "Convert.exe" لا تقوم بتحويل الملفات في مجلدها. بدلاً من ذلك ، يقوم بتحويل جميع الملفات في FOYDA لسبب غريب. لا أعرف لماذا اختار هذا المجلد ، حتى أنني لم أحاول حتى إرساله كحجة أو لا شيء.

هذا هو الرمز الذي لدي:

Dim techInfo As New System.IO.FileInfo(itm.strFilePath)             
techInfo.CopyTo(ConverterPath & techInfo.Name)

Dim procInfoConvert As New ProcessStartInfo
procInfoConvert.CreateNoWindow = False
procInfoConvert.Arguments = ""
procInfoConvert.FileName = ConverterPath & "Convert.exe"

Dim procConvert As Process = Process.Start(procInfoConvert)

قمت بإجراء اختبار حيث قمت بنسخ ملفًا إلى مجلد "convert.exe" ثم قم بتشغيل هذا الرمز:

process.start(ConverterPath & "Convert.exe")

لا يعيد Exe شيئًا ، كما لو لم يكن هناك ملفات في المجلد.

الشيء الوحيد الذي يمكنني التفكير فيه هو أنه عند تشغيل Process.start ، يقوم بنسخ الملف إلى موقع آخر ويديره من هناك.

أي أفكار أي شخص؟

هل كانت مفيدة؟

المحلول

جرب هذا:

procInfoConvert.WorkingDirectory = ConverterPath

سيؤدي ذلك إلى إعداد العملية للبدء في الدليل ، بدلاً من الدليل الحالي.

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