-my $file_name_base = sprintf('%04d-%02d-%02d_%02d%02d_nhk-%s_%s_%dmin', $y, $m, $d, $time_h, $time_m, $station,
- substr($title, 0, $MAX_TITLE_LENGTH) , $min);
-my $mp3 = "${file_name_base}.mp3";
-my $txt = "${file_name_base}.txt";
+#保存ファイル名 (長さ制限内に収める)
+my $base = sprintf('%04d-%02d-%02d_%02d%02d_nhk-%s_%dmin_%s', $y, $m, $d, $time_h, $time_m,
+ $station, $min, $title );
+my $len_bytes_save_dir = bytes::length($ENV{RADIKO_SAVE_TO}. '/.mp3');
+$base = substr($base, 0, -1) while bytes::length($base) + $len_bytes_save_dir > $MAX_PATH_BYTES;
+my $mp3 = "${base}.mp3";
+my $txt = "${base}.txt";