C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

ツリー一括表示

フォルダ内のファイル名の取得について /mai (18/10/11(Thu) 10:51) #88893
Re[1]: フォルダ内のファイル名の取得について /魔界の仮面弁士 (18/10/11(Thu) 11:34) #88894
  └ Re[2]: フォルダ内のファイル名の取得について /mai (18/10/12(Fri) 09:35) #88905
    └ Re[3]: フォルダ内のファイル名の取得について /リンク (18/10/12(Fri) 18:08) #88909


親記事 / ▼[ 88894 ]
■88893 / 親階層)  フォルダ内のファイル名の取得について
□投稿者/ mai (1回)-(2018/10/11(Thu) 10:51:57)

分類:[.NET 全般] 

分類:[.NET 全般]

特定のフォルダ内にあるファイル(pdf.word)名を拡張子を除いて
全て取得する方法を考えております。

自分が調べた限りでは、格納先のパスは取得できるのですが、
ファイル名そのものを取得できません。どうすれば宜しいでしょうか。
イメージとしては以下になります。

 Directory.GetFiles("C:\Users\")
  'Cドライブの特定のフォルダ内のファイルを全て取得する

 System.IO.Path.GetFileNameWithoutExtension("C:\Users\")
  '取得したファイルを拡張子を除いて変数に格納したい

プログラム関連の処理は初心者ですので、イマイチ伝わりづらいかもしれませんが、
何卒宜しくお願いします。
[ □ Tree ] 返信 編集キー/

▲[ 88893 ] / ▼[ 88905 ]
■88894 / 1階層)  Re[1]: フォルダ内のファイル名の取得について
□投稿者/ 魔界の仮面弁士 (1874回)-(2018/10/11(Thu) 11:34:05)
2018/10/11(Thu) 16:52:24 編集(投稿者)

No88893 (mai さん) に返信
> 特定のフォルダ内にあるファイル(pdf.word)名を拡張子を除いて
> 全て取得する方法を考えております。
> 自分が調べた限りでは、格納先のパスは取得できるのですが、
> ファイル名そのものを取得できません。どうすれば宜しいでしょうか。

受け取ったそれぞれのパスを Path.GetFileNameWithoutExtension に渡すことで、
拡張子の無いファイル名を得ることができます。


(例1)
Dim target As String = My.Computer.FileSystem.SpecialDirectories.MyDocuments
Dim pdfFileNames As String() = Directory.EnumerateFiles(target, "*.pdf", SearchOption.AllDirectories).Select(AddressOf Path.GetFileNameWithoutExtension).ToArray()


(例2)
Dim target As String = My.Computer.FileSystem.SpecialDirectories.MyDocuments
Dim files As String() = Directory.GetFiles(target, SearchOption.TopDirectoryOnly)
For n = 0 To UBound(files)
  files(n) = Path.GetFileNameWithoutExtension(files(n))
Next


(例3)
Dim target As String = My.Computer.FileSystem.SpecialDirectories.MyDocuments
Dim extList As String() = {".pdf", ".doc", ".docx", "docm"}
Dim q = From p In Directory.GetFiles(target, "*.*", SearchOption.AllDirectories)
    Let ext = Path.GetExtension(p).ToLowerInvariant()
    Where extList.Contains(ext)
    Select Path.GetFileNameWithoutExtension(p)
Dim pdfOrWordFiles As String() = q.ToArray()
[ 親 88893 / □ Tree ] 返信 編集キー/

▲[ 88894 ] / ▼[ 88909 ]
■88905 / 2階層)  Re[2]: フォルダ内のファイル名の取得について
□投稿者/ mai (3回)-(2018/10/12(Fri) 09:35:02)
No88894 (魔界の仮面弁士 さん) に返信
> 2018/10/11(Thu) 16:52:24 編集(投稿者)
>
> ■No88893 (mai さん) に返信
>>特定のフォルダ内にあるファイル(pdf.word)名を拡張子を除いて
>>全て取得する方法を考えております。
>>自分が調べた限りでは、格納先のパスは取得できるのですが、
>>ファイル名そのものを取得できません。どうすれば宜しいでしょうか。
>
> 受け取ったそれぞれのパスを Path.GetFileNameWithoutExtension に渡すことで、
> 拡張子の無いファイル名を得ることができます。
>
>
> (例1)
> Dim target As String = My.Computer.FileSystem.SpecialDirectories.MyDocuments
> Dim pdfFileNames As String() = Directory.EnumerateFiles(target, "*.pdf", SearchOption.AllDirectories).Select(AddressOf Path.GetFileNameWithoutExtension).ToArray()
>
>
> (例2)
> Dim target As String = My.Computer.FileSystem.SpecialDirectories.MyDocuments
> Dim files As String() = Directory.GetFiles(target, SearchOption.TopDirectoryOnly)
> For n = 0 To UBound(files)
>   files(n) = Path.GetFileNameWithoutExtension(files(n))
> Next
>
>
> (例3)
> Dim target As String = My.Computer.FileSystem.SpecialDirectories.MyDocuments
> Dim extList As String() = {".pdf", ".doc", ".docx", "docm"}
> Dim q = From p In Directory.GetFiles(target, "*.*", SearchOption.AllDirectories)
>     Let ext = Path.GetExtension(p).ToLowerInvariant()
>     Where extList.Contains(ext)
>     Select Path.GetFileNameWithoutExtension(p)
> Dim pdfOrWordFiles As String() = q.ToArray()

回答ありがとうございます。

逆に、拡張子のみ取得する場合はどうすればよろしいでしょうか。
調べたら、以下のコードが出てきましたが。。。

System.IO.Path.GetExtension( _
"C:\My Documents\My Pictures\サンプル.jpg"))

追加で申し訳ないのですが、教えて下さい。
[ 親 88893 / □ Tree ] 返信 編集キー/

▲[ 88905 ] / 返信無し
■88909 / 3階層)  Re[3]: フォルダ内のファイル名の取得について
□投稿者/ リンク (2回)-(2018/10/12(Fri) 18:08:53)
No88905 (mai さん) に返信
> 逆に、拡張子のみ取得する場合はどうすればよろしいでしょうか。
> 調べたら、以下のコードが出てきましたが。。。
>
> System.IO.Path.GetExtension( _
> "C:\My Documents\My Pictures\サンプル.jpg"))
>
> 追加で申し訳ないのですが、教えて下さい。

それで良い気がしますが、結果が期待するものと違ってたりしますか?
[ 親 88893 / □ Tree ] 返信 編集キー/


管理者用

- Child Tree -