Saya mencoba membuka folder di explorer dengan file yang dipilih.
Kode berikut menghasilkan file tidak ditemukan pengecualian:
System.Diagnostics.Process.Start(
"explorer.exe /select,"
+ listView1.SelectedItems[0].SubItems[1].Text + "\\"
+ listView1.SelectedItems[0].Text);
Bagaimana saya bisa mendapatkan perintah ini untuk dieksekusi di C #?
sumber
Jika jalur Anda berisi koma, menempatkan tanda kutip di sekitar jalur akan berfungsi saat menggunakan Process.Start (ProcessStartInfo).
Namun TIDAK akan berfungsi saat menggunakan Process.Start (string, string). Sepertinya Process.Start (string, string) benar-benar menghilangkan tanda kutip di dalam argumen Anda.
Ini adalah contoh sederhana yang cocok untuk saya.
sumber
Nilai saya hanya 2 sen, jika nama file Anda mengandung spasi, yaitu "c: \ My File Contains Spaces.txt", Anda harus mengelilingi nama file dengan tanda kutip, jika tidak, penjelajah akan menganggap bahwa kata-kata lain adalah argumen yang berbeda ...
sumber
Jawaban Samuel Yang membuat saya tersandung, ini adalah 3 sen saya.
Adrian Hum benar, pastikan Anda memberi tanda kutip di sekitar nama file Anda. Bukan karena ia tidak dapat menangani spasi seperti yang ditunjukkan zourtney, tetapi karena itu akan mengenali koma (dan mungkin karakter lain) dalam nama file sebagai argumen terpisah. Jadi seharusnya terlihat seperti saran Adrian Hum.
sumber
filePath
tidak mengandung"
di dalamnya. Karakter ini tampaknya ilegal pada sistem Windows tetapi diizinkan pada semua yang lain (misalnya, sistem POSIXish), sehingga Anda memerlukan lebih banyak kode jika Anda menginginkan portabilitas.Menggunakan
Process.Start
padaexplorer.exe
dengan/select
argumen anehnya hanya bekerja untuk jalur kurang dari 120 karakter.Saya harus menggunakan metode windows asli untuk membuatnya berfungsi dalam semua kasus:
sumber
Gunakan "/select,c:\file.txt"
Perhatikan harus ada koma setelah / pilih bukan spasi ..
sumber
Anda perlu menempatkan argumen untuk lulus ("/ pilih dll") di parameter kedua metode Mulai.
sumber
sumber
Alasan yang paling memungkinkan untuk tidak menemukan file adalah path yang memiliki spasi. Sebagai contoh, itu tidak akan menemukan "explorer / pilih, c: \ space space \ space.txt".
Tambahkan saja tanda kutip ganda sebelum dan sesudah jalur, seperti;
atau lakukan hal yang sama dalam C # dengan
sumber
Mungkin sedikit berlebihan tapi saya suka fungsi kenyamanan jadi ambillah yang ini:
Ini adalah fungsi ekstensi yang saya gunakan sebagai <string> .Quote ():
sumber