PDFファイルを結合すると、想定していたページの順番が異なっています。
Windowsにおけるファイル名 並べ替え>名前>昇順 の順番で結合をしたいのですが、
そういった機能はあるのでしょうか。
こんにちは
このアクティビティにそのような機能はないので、GetFilesで取得したファイル一覧を希望する順に並び替える必要があります。
文字コード順でよければLINQ のOrderByメソッドなどが使えます。複雑な条件の場合はそれなりのロジックが必要になるかもしれません。
文字コード順でよければ、例えば現在のGetFilesの式を以下のようにします。
System.IO.Directory.GetFiles("yourFolder").OrderBy(Function(f) f).ToArray()
読み仮名順ということでしょうか?そうであれば読み仮名の情報がないとソートのしようがないです。(漢字だけですと複数の読み方がある場合もありますので)
あるいは予め対象のソート済み名前リストがあるようでしたら、それを用いることによりソートは可能です。
名前リストは存在しますので、
ソート手法のご教授お願いいたします。
名前リストは存在しますので、
もう少し具体的な情報を共有いただくと良いかと思いますが、例えば以下のような感じになると思います。
System.IO.Directory.GetFiles("yourFolder").OrderBy(Function(f) Array.IndexOf(arrNameList, System.IO.Path.GetFileNameWithoutExtension(f))).ToArray()
いままで共有いただいた内容を総合しますと
リストはエクセルシート上にあって、フルネーム+さんで標記されている。
ファイルシステム上のファイルは姓+拡張子
というこであっていますか?
そうであれば
フルネームの姓名間はスペース等の区切り文字はありますか?
ファイル名の名前は必ずリストにありますでしょうか?
もしリスト上にない場合は、どのように扱いますか?
お世話になります。
はい、記載の通りのルールになります。
・スペースはありません。
・リストに名前が無い、ということはありません。
もし無かった場合はスルーします。(通常通りの処理or処理の停止 どちらでも可)
姓名間にスペースがないと、厳密にはマッチングできませんが、この点はいかがでしょうか?
前方一致でマッチングすることは可能ですが、厳密性が担保できません。
(例えば森●●さんと、森原××さんがいたときに、どこまでが姓か判別できないと区別できません)
お世話になります。
頂いたデータをそのまま流用しているのですが、うまいことできません。
orderlistには作成した氏名が入っているのですが、filesの内容がサンプルのままです。
どこを編集すればよいでしょうか。