FireBirdLib - Topfield TMS PVR TAP Programming Library
HDD_Rename.c
Go to the documentation of this file.
1#include <stdio.h>
2#include <string.h>
3#include "libFireBird.h"
4
5bool HDD_Rename(const char *FileName, const char *NewFileName)
6{
8
9 char Path[FBLIB_DIR_SIZE], Name[512], Ext[512];
10 char OldName[512], NewName[512];
11 bool isRec, isDel;
12 int fNumber;
13 bool ret;
14
15 ret = FALSE;
16
17 if(FileName && FileName[0] && NewFileName && NewFileName[0] && HDD_Exist(FileName))
18 {
19 ConvertPathType(FileName, OldName, PF_FullLinuxPath);
20 ConvertPathType(NewFileName, NewName, PF_FullLinuxPath);
21 MakeUniqueFileName(NewName);
22
23 ret = (rename(OldName, NewName) == 0);
24
25 SeparateFileNameComponents(OldName, Path, Name, Ext, &fNumber, &isRec, &isDel);
26 if(isRec)
27 {
28 //.rec.inf
29 if(fNumber)
30 TAP_SPrint(OldName, "%s%s-%d%s.inf%s", Path, Name, fNumber, Ext, isDel ? ".del" : "");
31 else
32 TAP_SPrint(OldName, "%s%s%s.inf%s", Path, Name, Ext, isDel ? ".del" : "");
33
34 SeparateFileNameComponents(NewName, Path, Name, Ext, &fNumber, &isRec, &isDel);
35 if(fNumber)
36 TAP_SPrint(NewName, "%s%s-%d%s.inf%s", Path, Name, fNumber, Ext, isDel ? ".del" : "");
37 else
38 TAP_SPrint(NewName, "%s%s%s.inf%s", Path, Name, Ext, isDel ? ".del" : "");
39
40 rename(OldName, NewName);
41
42 //.rec.nav
43 SeparateFileNameComponents(OldName, Path, Name, Ext, &fNumber, &isRec, &isDel);
44 if(fNumber)
45 TAP_SPrint(OldName, "%s%s-%d%s.nav%s", Path, Name, fNumber, Ext, isDel ? ".del" : "");
46 else
47 TAP_SPrint(OldName, "%s%s%s.nav%s", Path, Name, Ext, isDel ? ".del" : "");
48
49 SeparateFileNameComponents(NewName, Path, Name, Ext, &fNumber, &isRec, &isDel);
50 if(fNumber)
51 TAP_SPrint(NewName, "%s%s-%d%s.nav%s", Path, Name, fNumber, Ext, isDel ? ".del" : "");
52 else
53 TAP_SPrint(NewName, "%s%s%s.nav%s", Path, Name, Ext, isDel ? ".del" : "");
54
55 rename(OldName, NewName);
56
57 //.cut
58 SeparateFileNameComponents(OldName, Path, Name, Ext, &fNumber, &isRec, &isDel);
59 if(fNumber)
60 TAP_SPrint(OldName, "%s%s-%d.cut%s", Path, Name, fNumber, isDel ? ".del" : "");
61 else
62 TAP_SPrint(OldName, "%s%s.cut%s", Path, Name, isDel ? ".del" : "");
63
64 SeparateFileNameComponents(NewName, Path, Name, Ext, &fNumber, &isRec, &isDel);
65 if(fNumber)
66 TAP_SPrint(NewName, "%s%s-%d.cut%s", Path, Name, fNumber, isDel ? ".del" : "");
67 else
68 TAP_SPrint(NewName, "%s%s.cut%s", Path, Name, isDel ? ".del" : "");
69
70 rename(OldName, NewName);
71
72 //.cut.bak
73 SeparateFileNameComponents(OldName, Path, Name, Ext, &fNumber, &isRec, &isDel);
74 if(fNumber)
75 TAP_SPrint(OldName, "%s%s-%d.cut.bak%s", Path, Name, fNumber, isDel ? ".del" : "");
76 else
77 TAP_SPrint(OldName, "%s%s.cut.bak%s", Path, Name, isDel ? ".del" : "");
78
79 SeparateFileNameComponents(NewName, Path, Name, Ext, &fNumber, &isRec, &isDel);
80 if(fNumber)
81 TAP_SPrint(NewName, "%s%s-%d.cut.bak%s", Path, Name, fNumber, isDel ? ".del" : "");
82 else
83 TAP_SPrint(NewName, "%s%s.cut.bak%s", Path, Name, isDel ? ".del" : "");
84
85 rename(OldName, NewName);
86
87 //.srt
88 SeparateFileNameComponents(OldName, Path, Name, Ext, &fNumber, &isRec, &isDel);
89 Name[strlen(Name) - 4] = '\0'; //Remove .cut from name
90 if(fNumber)
91 TAP_SPrint(OldName, "%s%s-%d.srt%s", Path, Name, fNumber, isDel ? ".del" : "");
92 else
93 TAP_SPrint(OldName, "%s%s.srt%s", Path, Name, isDel ? ".del" : "");
94
95 SeparateFileNameComponents(NewName, Path, Name, Ext, &fNumber, &isRec, &isDel);
96 Name[strlen(Name) - 4] = '\0'; //Remove .cut from name
97 if(fNumber)
98 TAP_SPrint(NewName, "%s%s-%d.srt%s", Path, Name, fNumber, isDel ? ".del" : "");
99 else
100 TAP_SPrint(NewName, "%s%s.srt%s", Path, Name, isDel ? ".del" : "");
101
102 rename(OldName, NewName);
103 }
104 }
105
106 TRACEEXIT();
107 return ret;
108}
void ConvertPathType(const char *Source, char *Dest, tPathFormat DestFormat)
bool HDD_Exist(const char *FileName)
Definition: HDD_Exist.c:4
bool HDD_Rename(const char *FileName, const char *NewFileName)
Definition: HDD_Rename.c:5
void MakeUniqueFileName(char *FileName)
void SeparateFileNameComponents(const char *FileName, char *Path, char *Name, char *Ext, int *Index, bool *isRec, bool *isDel)
#define FBLIB_DIR_SIZE
Definition: libFireBird.h:1871
#define TRACEEXIT()
Definition: libFireBird.h:1244
#define TRACEENTER()
Definition: libFireBird.h:1243
@ PF_FullLinuxPath
Definition: libFireBird.h:1926