開発者向け機能:サーバスクリプト:$ps.file.moveFile
概要¶
サーバスクリプトで$ps.fileを使用して指定ファイルの名称変更または移動を行います。
前提条件¶
Script.jsonのDisableServerScriptFileを false に設定することが必要です。
構文¶
パラメータ¶
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| section | string | ○ | セクション名。セクションについては$ps.fileの「セクションについて」を参照ください。 |
| old_name | string | ○ | 旧ファイル名。ディレクトリの区切り文字はWindow、Linux共に「/」を利用する。 |
| new_name | string | ○ | 新ファイル名。ディレクトリの区切り文字はWindow、Linux共に「/」を利用する。 |
戻り値¶
ファイルを移動できた場合は true、移動できなかった場合は false を返却します。
例外¶
C#内で例外が発生した場合はサーバスクリプト内に例外クラス名とエラーメッセージをErrorオブジェクトに入れて例外を発生させます。
使用例¶
以下の例では、Webサーバ内の指定ファイル名を変更します。
JavaScript¶
以下の例では、Webサーバ内の指定ファイル名を移動します。
JavaScript¶
サンプルコード¶
コード内の【 ... 】 は適宜修正してください。¶
1. 任意のフォルダに格納されたCSVファイルをインポートする
任意のフォルダに格納されたCSVファイルをインポートするサンプルコードです。
以下処理イメージです。

①receivedフォルダに格納されているCSVファイルをPleasanterへインポート
②処理後、backup/receivedへ移動
JavaScript¶
const SECTION = 'files';
const RECEIVED = 'received';
const BACKUP_RECEIVED = 'backup/received';
const SITE_NAME = '【サイト名】';
// サイト情報取得
const site = items.GetClosestSite(SITE_NAME);
if (!site) {
logs.LogException(`サイト:${SITE_NAME}が見つかりません。`);
return false;
}
const siteId = site.SiteId;
// 受信フォルダのファイルを読み込み、インポートする
const param = {};
const lists = $ps.file.getFileList(SECTION, RECEIVED);
if (lists.length > 0) {
for (const element of lists) {
const result = $ps.file.import(
SECTION,
`${RECEIVED}/${element}`,
siteId,
$ps.JSON.stringify(param),
);
if (!result) {
logs.LogException(
`インポートに失敗しました。 ファイル名:${element}`,
);
return false;
} else {
logs.LogInfo(
`インポート成功 ファイル名:${element} 結果:${$ps.JSON.stringify(
result,
)}`,
);
}
}
// インポート完了後、ファイルをバックアップファイルに移動
for (const element of lists) {
const moveResult = $ps.file.moveFile(
SECTION,
`${RECEIVED}/${element}`,
`${BACKUP_RECEIVED}/${element}`,
);
if (!moveResult) {
logs.LogException(`ファイル移動失敗 ファイル名:${element}`);
return false;
} else {
logs.LogInfo(`ファイル移動成功 ファイル名:${element}`);
}
}
}
2. 任意のフォルダにテーブルのデータをエクスポートする
任意のフォルダにテーブルのデータをエクスポートするサンプルコードです。
以下処理イメージです。

①sendフォルダに格納されている前回エクスポートしたCSVファイルをbackup/sendへ移動
②エクスポートしたCSVファイルをsendフォルダへ格納
JavaScript¶
// 各種設定
const SECTION = 'files';
const SEND = 'send';
const BACKUP_SEND = 'backup/send';
const SITE_NAME = '【サイト名】';
const FILE_DATE_FORMAT = 'utilities';
// 処理日時の文字列取得
function getDateTimeString() {
return new Date()
.toLocaleString('ja-JP', {
year: 'numeric',
month: '2-digit',
day: '2-digit',
hour: '2-digit',
minute: '2-digit',
second: '2-digit',
hour12: false, // 24時間表示
})
.replaceAll('/', '')
.replaceAll(':', '')
.replaceAll(' ', '');
}
// サイト情報取得
const site = items.GetClosestSite(SITE_NAME);
if (!site) {
logs.LogException(`サイト:${SITE_NAME}が見つかりません。`);
return false;
}
const siteId = site.SiteId;
// 送信フォルダにあるファイルをバックアップフォルダに移動
const lists = $ps.file.getFileList(SECTION, SEND);
if (lists.length > 0) {
for (const element of lists) {
const moveResult = $ps.file.moveFile(
SECTION,
`${SEND}/${element}`,
`${BACKUP_SEND}/${element}`,
);
if (!moveResult) {
logs.LogException(`ファイル移動失敗 ファイル名:${element}`);
return false;
} else {
logs.LogInfo(`ファイル移動成功 ファイル名:${element}`);
}
}
}
// ファイルエクスポート:エクスポート定義のID:1を使用。対象レコードは「対象月が今年」のレコード
const param = {
ExportId: 1,
View: {
ColumnFilterHash: {
DateA: '["ThisYear"]',
},
},
};
const path = `${SEND}/${FILE_DATE_FORMAT}${getDateTimeString()}.csv`;
const exportResult = $ps.file.export(
SECTION,
path,
siteId,
$ps.JSON.stringify(param),
);
if (!exportResult) {
logs.LogException(`エクスポートに失敗しました。 ファイル名:${path}`);
return false;
} else {
logs.LogInfo(`エクスポート成功 ファイル名:${path}`);
}
対応バージョン¶
| 対応バージョン | 内容 |
|---|---|
| 1.4.12.0 以降 | 機能追加 |
