【Uipath Studio】文字列のバイト数取得について

こんにちは

Excelファイル名、もしくはフォルダ名のバイト数が30バイト以上かどうかで処理分岐させる処理を構築したいと考えているのですが、バイト数を取得する方法が分かりません。

ちなみにバイト数を取得する対象はExcelファイル名、フォルダ名になるかはその都度変わるため、取得方法が異なる場合はそれぞれ教えて頂けますと助かります。

ご存じの方いらっしゃえば教えて頂けると助かります。
宜しくお願い致します。

こんにちは

文字数ではなくバイト数ということでしょうか?文字エンコーディングによってバイト数は変化しますので、そのあたりを明確にいただく必要があるかと思います。

Yoichiさん

返信ありがとうございます。
文字エンコーディングについて詳しく理解出来ておらず、開発するときもCSV読込などのアクティビティを利用する際に文字化けしないようにShift-jisを設定するくらいしか認識できていないです。

プロパティなどを確認すればファイル名に用いている文字エンコーディングはわかったりするのでしょうか?

これはアプリケーション側の問題になりますので、30バイトで処理を分けたい理由等によるのではと思います。

Excelファイルやフォルダをzip化した後、アプリケーションに取り込む処理を行うのですが、そのアプリケーションではファイル名が30バイト以上だと取り込めないです。
そのためロボで30バイト以上のファイル名を持つファイルはファイル名を短くする処理を追加する必要があります。

このアプリケーションの処理内容次第になります。ShiftJISかUTF-8の可能性が高いと思うので

Shift-JISなら

フルパス

System.Text.Encoding.GetEncoding("shift_jis").GetBytes(filepath).Length

ディレクトリ

System.Text.Encoding.GetEncoding("shift_jis").GetBytes(System.IO.Path.GetDirectoryName(filepath)).Length]

ファイル名

System.Text.Encoding.GetEncoding("shift_jis").GetBytes(System.IO.Path.GetFileName(filepath)).Length

UTF8なら

System.Text.Encoding.UTF8.GetBytes(filepath).Length

以下同様

Sample
Sample20240213-1.zip (2.8 KB)

ご連絡が遅くなり申し訳ございません。
無事共有いただいた内容で処理出来ました。
ありがとうございました。