このライブラリは、UiPath向けのカスタムアクティビティです。
UiPathをやっていると、今いるディレクトリ名を取得したり、ファイルをBase64 Encodeしたりなど、.NETのメソッドを呼びたいことがちょくちょくあるのですが、それらを呼び出すアクティビティになっています。
具体的には以下の機能を提供します。
- Combine: パスを連結します
- Current Dir: 現在のディレクトリを返します
- Path Utils: ファイルの存在チェックなどを行います
- Base64 Encode: Base64 Encodeします
- Base64 Decode: Base64 Decodeします
- Base64 Encode From File: ファイルをBase64 Encodeします
- ConvertCRLF: 改行コードを変換します
- ToJSONString: 任意のオブジェクトをJSON文字列化します
指定されたパスの配列を連結して、パスを生成します。いわゆる
{"c:¥temp","hogehoge"} → c:¥temp¥hogehoge
{"temp","hogehoge"} → temp\hogehoge
{"te/mp","hoge\hoge"} → te\mp\hoge\hoge
のような処理です。ふつうに文字列連結をすると c:¥temphogehogeなどになりますが .NETの System.IO.Path.Combine を呼び出して処理しています。ついでに、スラッシュ(/)もディレクトリの区切りとして処理したかったので、String.Replace("/", "\\") も入れてます。
現在のディレクトリのフルパスを返すアクティビティです。ただただ Directory.GetCurrentDirectoryをしているだけ。
相対パス・絶対パスを指定して、以下を取得するアクティビティです。
| 項目名 | 内容 |
|---|---|
| DirectoryPath | 原則 Path.GetDirectoryName() とおなじものを返します※ |
| DirExists | 指定したディレクトリが存在すればTrue(ファイルだったら存在してもFalse) |
| FileExists | 指定したファイルが存在すればTrue(ディレクトリだったら存在してもFalse) |
| FullPath | フルパスが返ります |
※ 基本、Path.GetDirectoryName() とおなじものを返しますが、存在するディレクトリを指定したときは末尾に"¥"がなくても、そのディレクトリパスを返します。 Path.GetDirectoryName()は末尾が"¥"で終わってないと、その上のディレクトリパスを返してしまうようですが。
例:
Path: c:/temp/existsDir/
→
FullPath: c:\temp\existsDir\
DirectoryPath: c:\temp\existsDir
Path: c:/temp/existsDir
→
FullPath: c:\temp\existsDir
DirectoryPath: c:\temp\existsDir ←.NETのメソッドは、c:\temp\ を返しますが、。
Path: c:/temp/notExistsDir/
→
FullPath: c:\temp\notExistsDir\
DirectoryPath: c:\temp\notExistsDir
Path: c:/temp/notExistsDir
→
FullPath: c:\temp\notExistsDir
DirectoryPath: c:\temp
Path: c:/temp/existsOrNotExistsFile.txt
→
FullPath: c:\temp\existsOrNotExistsFile.txt
DirectoryPath: c:\temp
文字列をUTF-8とみなしBase64 Encodeします。
処理的には
var result = Convert.ToBase64String(Encoding.GetEncoding("UTF-8").GetBytes(text));です。
Base64 Encodeされた文字列をDecodeし、UTF-8で文字列にします。
処理的には
var resut = Encoding.GetEncoding("UTF-8").GetString(Convert.FromBase64String(text));です。
ファイルをバイナリで読取り、Base64 Encodeします。
処理的には
var path = context.GetValue(this.Path);
var bytes = ReadFile(path);
var result = Convert.ToBase64String(bytes);
public byte[] ReadFile(string filePath)
{
using (var fs = new FileStream(filePath, FileMode.Open, FileAccess.Read))
{
var buffer = new byte[fs.Length];
fs.Read(buffer, 0, buffer.Length);
return buffer;
}
}こんな感じ。
与えられたテキストの改行コードを変換します。入力されたデータの改行コードが CR/LF/CR+LF どれであるかに関わらず「セットする改行コード」にチェックを入れた改行コードで出力します。処理的には、いったん CR/CR+LF → LF へ変換し、そのあとLFを指定された改行コードに変換しています。
// まず、LFだけにしてしまう
trimData = trimData.Replace("\r\n", "\n");
trimData = trimData.Replace("\r", "\n");
if (CR) {
trimData = trimData.Replace("\n", "\r\n");
} else {
// CRはすでに除去済みなのでなにもしない
}
if (LF) {
// LFはすでに付与済みなのでなにもしない
} else {
trimData = trimData.Replace("\n", "");
}こんな感じ。
任意のオブジェクトをJSON文字列化するアクティビティです。
例としてはDictionaryオブジェクトを生成して渡してみると、Key/ValueがJSON文字列として出力されています。
処理的には
String jsonStr = Newtonsoft.Json.JsonConvert.SerializeObject(obj, Formatting.Indented);です。








