本文整理匯總了C#中ROMVault2.RvDB.RvDir.ChildRemove方法的典型用法代碼示例。如果您正苦於以下問題:C# RvDir.ChildRemove方法的具體用法?C# RvDir.ChildRemove怎麽用?C# RvDir.ChildRemove使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類ROMVault2.RvDB.RvDir
的用法示例。
在下文中一共展示了RvDir.ChildRemove方法的6個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的C#代碼示例。
示例1: MarkAsMissing
private static void MarkAsMissing(RvDir dbDir)
{
for (int i = 0; i < dbDir.ChildCount; i++)
{
RvBase dbChild = dbDir.Child(i);
if (dbChild.FileRemove() == EFile.Delete)
{
dbDir.ChildRemove(i);
i--;
}
else
{
switch (dbChild.FileType)
{
case FileType.Zip:
MarkAsMissing((RvDir)dbChild);
break;
case FileType.Dir:
RvDir tDir = (RvDir)dbChild;
if (tDir.Tree == null)
MarkAsMissing(tDir);
break;
}
}
}
}
示例2: DBFileNotFound
private static void DBFileNotFound(RvBase dbChild, RvDir dbDir, ref int dbIndex)
{
if (dbChild == null)
{
ReportError.SendAndShow(Resources.FileScanning_CheckADir_Error_in_File_Scanning_Code);
return;
}
if (dbChild.FileRemove() == EFile.Delete)
dbDir.ChildRemove(dbIndex);
else
{
switch (dbChild.FileType)
{
case FileType.Zip:
MarkAsMissing((RvDir)dbChild);
break;
case FileType.Dir:
RvDir tDir = (RvDir)dbChild;
if (tDir.Tree == null)
MarkAsMissing(tDir);
break;
}
dbIndex++;
}
}
示例3: RecursiveDatTree
private static bool RecursiveDatTree(RvDir tDir, out int datCount)
{
datCount = 0;
string strPath = tDir.DatFullName;
if (!Directory.Exists(strPath))
{
ReportError.Show(Resources.DatUpdate_UpdateDatList_Path + strPath + Resources.DatUpdate_UpdateDatList_Not_Found);
return false;
}
DirectoryInfo oDir = new DirectoryInfo(strPath);
FileInfo[] oFilesIn = oDir.GetFiles("*.dat", false);
datCount += oFilesIn.Length;
foreach (FileInfo file in oFilesIn)
{
RvDat tDat = new RvDat();
tDat.AddData(RvDat.DatData.DatFullName, file.FullName);
tDat.TimeStamp = file.LastWriteTime;
tDir.DirDatAdd(tDat);
}
oFilesIn = oDir.GetFiles("*.xml", false);
datCount += oFilesIn.Length;
foreach (FileInfo file in oFilesIn)
{
RvDat tDat = new RvDat();
tDat.AddData(RvDat.DatData.DatFullName, file.FullName);
tDat.TimeStamp = file.LastWriteTime;
tDir.DirDatAdd(tDat);
}
if (tDir.DirDatCount > 1)
for (int i = 0; i < tDir.DirDatCount; i++)
tDir.DirDat(i).AutoAddDirectory = true;
DirectoryInfo[] oSubDir = oDir.GetDirectories(false);
foreach (DirectoryInfo t in oSubDir)
{
RvDir cDir = new RvDir(FileType.Dir) { Name = t.Name, DatStatus = DatStatus.InDatCollect };
int index = tDir.ChildAdd(cDir);
int retDatCount;
RecursiveDatTree(cDir, out retDatCount);
datCount += retDatCount;
if (retDatCount == 0)
tDir.ChildRemove(index);
}
return true;
}
示例4: DatSetRemoveGameDir
private static void DatSetRemoveGameDir(RvDir newDir)
{
if (newDir.ChildCount != 1)
return;
RvDir child = newDir.Child(0) as RvDir;
if (child.FileType != FileType.Dir)
return;
if (child.Game == null)
return;
newDir.ChildRemove(0);
newDir.Game = child.Game;
for (int i = 0; i < child.ChildCount; i++)
newDir.ChildAdd(child.Child(i), i);
}
示例5: DatSetMergeSets
private static void DatSetMergeSets(RvDir tDat)
{
for (int g = tDat.ChildCount - 1; g >= 0; g--)
{
RvDir mGame = (RvDir)tDat.Child(g);
if (mGame.Game == null)
{
DatSetMergeSets(mGame);
continue;
}
List<RvDir> lstParentGames = new List<RvDir>();
FindParentSet(mGame, tDat, ref lstParentGames);
while (lstParentGames.Count > 0 && lstParentGames[lstParentGames.Count - 1].Game.GetData(RvGame.GameData.IsBios).ToLower() == "yes")
lstParentGames.RemoveAt(lstParentGames.Count - 1);
if (lstParentGames.Count <= 0) continue;
RvDir romofGame = lstParentGames[lstParentGames.Count - 1];
bool founderror = false;
for (int r = 0; r < mGame.ChildCount; r++)
{
string name = mGame.Child(r).Name;
string mergename = ((RvFile)mGame.Child(r)).Merge;
for (int r1 = 0; r1 < romofGame.ChildCount; r1++)
{
if ((name == romofGame.Child(r1).Name || mergename == romofGame.Child(r1).Name) &&
(ArrByte.iCompare(((RvFile)mGame.Child(r)).CRC, ((RvFile)romofGame.Child(r1)).CRC) != 0 ||
((RvFile)mGame.Child(r)).Size != ((RvFile)romofGame.Child(r1)).Size))
founderror = true;
}
}
if (founderror)
{
mGame.Game.DeleteData(RvGame.GameData.RomOf);
continue;
}
for (int r = 0; r < mGame.ChildCount; r++)
{
string name = mGame.Child(r).Name;
string mergename = ((RvFile)mGame.Child(r)).Merge;
bool found = false;
for (int r1 = 0; r1 < romofGame.ChildCount; r1++)
{
if ((name == romofGame.Child(r1).Name || mergename == romofGame.Child(r1).Name) &&
(ArrByte.iCompare(((RvFile)mGame.Child(r)).CRC, ((RvFile)romofGame.Child(r1)).CRC) == 0 &&
((RvFile)mGame.Child(r)).Size == ((RvFile)romofGame.Child(r1)).Size))
{
found = true;
break;
}
}
if (!found)
romofGame.ChildAdd(mGame.Child(r));
}
tDat.ChildRemove(g);
}
}
示例6: FixZip
//.........這裏部分代碼省略.........
}
#endregion
#region Process original Zip
string filename = fixZip.FullName;
if (File.Exists(filename))
{
if (!File.SetAttributes(filename, FileAttributes.Normal))
{
int error = Error.GetLastError();
ReportProgress(new bgwShowError(filename, "Error Setting File Attributes to Normal. Deleting Original Fix File. Code " + error));
}
try
{
File.Delete(filename);
}
catch (Exception)
{
int error = Error.GetLastError();
_error = "Error While trying to delete file " + filename + ". Code " + error;
if (tempZipOut != null && tempZipOut.ZipOpen != ZipOpenType.Closed)
tempZipOut.ZipFileClose();
return ReturnCode.RescanNeeded;
}
}
#endregion
bool checkDelete = false;
#region process the temp Zip rename it to the original Zip
if (tempZipOut != null && tempZipOut.ZipOpen != ZipOpenType.Closed)
{
string tempFilename = tempZipOut.ZipFilename;
tempZipOut.ZipFileClose();
if (tempZipOut.LocalFilesCount() > 0)
{
// now rename the temp fix file to the correct filename
File.Move(tempFilename, filename);
FileInfo nFile = new FileInfo(filename);
RvDir tmpZip = new RvDir(FileType.Zip)
{
Name = Path.GetFileNameWithoutExtension(filename),
TimeStamp = nFile.LastWriteTime
};
tmpZip.SetStatus(fixZip.DatStatus, GotStatus.Got);
fixZip.FileAdd(tmpZip);
fixZip.ZipStatus = tempZipOut.ZipStatus;
}
else
{
File.Delete(tempFilename);
checkDelete = true;
}
}
else
checkDelete = true;
#endregion
#region Now put the New Game Status information into the Database.
int intLoopFix = 0;
foreach (RvFile tmpZip in fixZipTemp)
{
tmpZip.CopyTo(fixZip.Child(intLoopFix));
if (fixZip.Child(intLoopFix).RepStatus == RepStatus.Deleted)
if (fixZip.Child(intLoopFix).FileRemove() == EFile.Delete)
{
fixZip.ChildRemove(intLoopFix);
continue;
}
intLoopFix++;
}
#endregion
if (checkDelete)
CheckDeleteObject(fixZip);
ReportError.LogOut("");
ReportError.LogOut("Zip File Status After Fix:");
for (int intLoop = 0; intLoop < fixZip.ChildCount; intLoop++)
ReportError.LogOut((RvFile)fixZip.Child(intLoop));
ReportError.LogOut("");
return ReturnCode.Good;
ZipOpenFailed:
if (tempZipOut != null) tempZipOut.ZipFileCloseFailed();
if (toSortZipOut != null) toSortZipOut.ZipFileCloseFailed();
if (toSortCorruptOut != null) toSortCorruptOut.ZipFileCloseFailed();
return returnCode;
}