كيف يمكنني فتح مجلدي "المستندات" و"جهاز الكمبيوتر" من لغة C#؟

StackOverflow https://stackoverflow.com/questions/1073999

  •  21-08-2019
  •  | 
  •  

سؤال

لقد استخدمت اثنين من المعرفات الفريدة العمومية (GUIDs) لفتح المجلدات جهاز الكمبيوتر الخاص بي و مستنداتي.

Process.Start("iexplore.exe", "::{20d04fe0-3aea-1069-a2d8-08002b30309d}");
Process.Start("iexplore.exe", "::{450d8fba-ad25-11d0-98a8-0800361b1103}");

لكنه يفتح Internet Explorer ثم يفتح المجلدات جهاز الكمبيوتر الخاص بي و مستنداتي.

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

المحلول

والأفضل من ذلك سيكون لتخطي explorer تماما ومجرد "بداية" المعرفات الفريدة العمومية مباشرة:

وProcess.Start("::{20d04fe0-3aea-1069-a2d8-08002b30309d}"); ...

نصائح أخرى

لا يبدو استخدام هذه القيم الإرشادية المشفرة أفضل طريقة لتحقيق ذلك.

يمكنك استخدام البيئة.GetFolderPath وظيفة للحصول على مسار أي من مجلدات النظام الخاصة.يقبل ا البيئة.مجلد خاص التعداد.

بهذه الطريقة سيكون الأمر أكثر قوة، لأنه لن يكون لديك أي قيم مشفرة "سحرية".

إليك كيفية استخدامه:

//get the folder paths
string myComputerPath = Environment.GetFolderPath(Environment.SpecialFolder.MyComputer);
string myDocumentsPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
//open explorer and point it at the paths
System.Diagnostics.Process.Start("explorer", myComputerPath);
System.Diagnostics.Process.Start("explorer", myDocumentsPath);

ملاحظة هامة لمستخدمي ويندوز 7

يبدو أن محاولة استخدام هذا الرمز لفتح جهاز الكمبيوتر على نظام التشغيل Windows 7 بشكل غير صحيح يؤدي إلى فتح مجلد المكتبات بدلاً من ذلك.وذلك لأن السلوك الافتراضي لتشغيل المستكشف بمسار فارغ قد تغير في نظام التشغيل Windows 7.

لقد قدمت تقرير الأخطاء التالي على الرابط، اذهب وقم بالتصويت عليه إذا كنت تعتقد أن هذا مهم!

https://connect.microsoft.com/VisualStudio/feedback/details/757291/environment-getfolderpath-not-working-correctly-in-windows-7#details

(شكرًا لـ JeremyK في التعليقات لتوضيح ذلك)

هل حاولت:

Process.Start("explorer.exe", "::{20d04fe0-3aea-1069-a2d8-08002b30309d}");
Process.Start("explorer.exe", "::{450d8fba-ad25-11d0-98a8-0800361b1103}");

وحاول EXPLORER.EXE:

Process.Start("explorer.exe", "::{20d04fe0-3aea-1069-a2d8-08002b30309d}");
Process.Start("explorer.exe", "::{450d8fba-ad25-11d0-98a8-0800361b1103}");

وهذا لا يعمل لبلدي ويندوز فيستا:

string myComputerPath = Environment.GetFolderPath(Environment.SpecialFolder.MyComputer);
System.Diagnostics.Process.Start("explorer", myComputerPath);

وكما يعود Environment.SpecialFolder.MyComputer "" وProcess.Start ( "المستكشف"، "") يفتح المستندات.

ووGUID يبدو للقيام بذلك، على الرغم من:

Process.Start("explorer.exe", "::{20d04fe0-3aea-1069-a2d8-08002b30309d}");
System.Diagnostics.Process.Start("...");

وأنا أعلم أنه يبدو المشكوك فيه ولكن فقط تشغيله. انه سوف يعمل. هذا هو رمز لجهاز الكمبيوتر الخاص بي. أنا لا أعرف ما ينبغي أن يكون ل <م> المستندات .

<اقتباس فقرة>   

وSystem.Diagnostics.Process.Start("...");

وأنا أعلم أنه يبدو المشكوك فيه ولكن فقط تشغيله. انه سوف يعمل. هذا هو رمز لجهاز الكمبيوتر الخاص بي. أنا لا أعرف ما ينبغي أن يكون لالمستندات.

في ويندوز 7 وهذا يؤدي إلى فتح المجلد من حيث تنفيذ الخاص بك قيد التشغيل، أي المجلد "الحالي".

وكان لي لفتح مستنداتي، وبناء على التعليقات الواردة أعلاه I يضيق الخناق الحل لفتح مستكشف دون آثار جانبية:

Process.Start("::{450d8fba-ad25-11d0-98a8-0800361b1103}");

واختبرته على Windows Server 2008 R2.

وSamdoss

ما عليك سوى إدخال

System.Diagnostics.Process.Start(directoryPath);

من السهل جدا. محاولة ذلك.

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