string path = "C:/folder1/folder2/file.txt";
Benda atau metode apa yang bisa saya gunakan yang akan memberi saya hasil folder2
?
c#
path
filesystems
Ash Burlaczenko
sumber
sumber
Jawaban:
Saya mungkin akan menggunakan sesuatu seperti:
Panggilan dalam ke
GetDirectoryName
akan mengembalikan path lengkap, sedangkan panggilan luar keGetFileName()
akan mengembalikan komponen path terakhir - yang akan menjadi nama folder.Pendekatan ini berfungsi apakah jalan benar-benar ada atau tidak. Pendekatan ini, bagaimanapun, bergantung pada jalur yang awalnya berakhir dengan nama file. Jika tidak diketahui apakah jalur berakhir dengan nama file atau nama folder - maka mengharuskan Anda memeriksa jalur sebenarnya untuk melihat apakah file / folder ada di lokasi terlebih dahulu. Dalam hal ini, jawaban Dan Dimitru mungkin lebih tepat.
sumber
Coba ini:
sumber
Sederhana & bersih. Hanya menggunakan
System.IO.FileSystem
- berfungsi seperti pesona:sumber
file.txt
, dan tidakfolder2
DirectoryInfo melakukan tugas untuk menghapus nama direktori
sumber
Saya menggunakan potongan kode ini untuk mendapatkan direktori untuk jalur ketika tidak ada nama file di jalur:
misalnya "c: \ tmp \ test \ visual";
Keluaran:
sumber
sumber
Penting juga untuk dicatat bahwa saat mendapatkan daftar nama direktori dalam satu lingkaran,
DirectoryInfo
kelas akan diinisialisasi satu kali sehingga hanya memungkinkan panggilan pertama kali. Untuk melewati batasan ini, pastikan Anda menggunakan variabel dalam loop Anda untuk menyimpan nama direktori apa pun.Sebagai contoh, kode sampel ini loop melalui daftar direktori dalam direktori induk sembari menambahkan setiap nama direktori yang ditemukan di dalam Daftar tipe string:
[C #]
[VB.NET]
sumber
Kode di bawah ini membantu untuk mendapatkan nama folder saja
sumber
Ini jelek tapi menghindari alokasi:
sumber