Jika saya memiliki string yang mengatakan "abc.txt"
, apakah ada cara cepat untuk mendapatkan substring yang adil"abc"
?
Saya tidak dapat melakukan fileName.IndexOf('.')
karena nama file bisa "abc.123.txt"
atau sesuatu dan saya jelas hanya ingin menyingkirkan ekstensi (yaitu "abc.123"
).
Ada metode dalam kerangka kerja untuk tujuan ini, yang akan menjaga jalur penuh kecuali ekstensi.
Jika hanya nama file yang diperlukan, gunakan
sumber
null
memiliki nilai sihir di sini. Jika Anda menggunakanString.Empty
alias,""
Anda akan dibiarkan dengan titik [.
] tertinggal .GetFileNameWithoutExtension
lebih eksplisit. Walaupun itu bagus mengetahui tentang efek samping yang mungkin tidak diinginkan dan adanya alternatif untuk menghindarinya.Kamu bisa memakai
Dan kemudian hapus ekstensi secara manual:
sumber
String.LastIndexOf akan berfungsi.
sumber
foo/bar.cat/cheese
!String.LastIndexOf
berbahaya untuk mencapai sesuatu seperti ini. Untuk file tanpa ekstensi, seperti @Cameron telah katakan di atas, hasil Anda mungkin tidak seperti yang Anda inginkan. Cara paling aman untuk melakukan ini adalah menggunakan jawaban @ Logman di atas.Jika Anda ingin membuat jalur lengkap tanpa ekstensi, Anda dapat melakukan sesuatu seperti ini:
tapi saya mencari cara yang lebih sederhana untuk melakukan itu. Adakah yang punya ide?
sumber
Saya menggunakan kode di bawah ini, lebih sedikit
Output akan menjadi
sumber
Path.Combine()
daripada menentukan"\\"
.jika Anda ingin menggunakan operasi String maka Anda dapat menggunakan fungsi lastIndexOf () yang mencari kejadian terakhir dari karakter atau substring. Java memiliki banyak fungsi string.
sumber
Anda mungkin tidak meminta api UWP. Namun dalam UWP,
file.DisplayName
adalah nama tanpa ekstensi. Semoga bermanfaat buat orang lain.sumber
Saya tahu ini adalah pertanyaan lama dan
Path.GetFileNameWithoutExtension
merupakan pilihan yang lebih baik dan mungkin lebih bersih. Tetapi secara pribadi saya telah menambahkan dua metode ini ke proyek saya dan ingin membagikannya. Ini membutuhkan C # 8.0 karena menggunakan rentang dan indeks.sumber
sumber
sumber
Implementasi ini harus bekerja.
sumber
abc.txt.pdf
? :-)