亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? nsdogbertprofilemigrator.cpp

?? 現在很火的郵件客戶端軟件thunderbird的源碼
?? CPP
?? 第 1 頁 / 共 5 頁
字號:
  if (NS_FAILED(rv)) return rv;#endif /* XP_MAC */  // Copy the addrbook files.  rv = CopyFilesByPattern(oldProfilePath, newProfilePath, ADDRBOOK_FILE_EXTENSION_IN_4X);  NS_ENSURE_SUCCESS(rv,rv);#if defined(XP_MAX) || defined(XP_MACOSX)  // Copy the Mac filter rule files which sits at the top level dir of a 4.x profile.  if(serverType == IMAP_4X_MAIL_TYPE) {    rv = CopyFilesByPattern(oldProfilePath, newProfilePath, MAC_RULES_FILE_ENDING_STRING_IN_4X);    NS_ENSURE_SUCCESS(rv,rv);  }#endif  rv = DoTheCopy(oldNewsPath, newNewsPath, PR_TRUE);  if (NS_FAILED(rv)) return rv;#ifdef NEED_TO_COPY_AND_RENAME_NEWSRC_FILES  /* in 4.x, the newsrc files were in $HOME.  Now that we can have multiple   * profiles in 5.x, with the same user, this won't fly.   * when they migrate, we need to copy from $HOME/.newsrc-<host> to   * ~/.mozilla/<profile>/News/newsrc-<host>   */  rv = CopyAndRenameNewsrcFiles(newNewsPath);  if (NS_FAILED(rv)) return rv;#endif /* NEED_TO_COPY_AND_RENAME_NEWSRC_FILES */  if (serverType == IMAP_4X_MAIL_TYPE) {    if( copyMailFileInMigration )  // copy mail files in migration    {    rv = DoTheCopyAndRename(oldIMAPMailPath, newIMAPMailPath, PR_TRUE, needToRenameFilterFiles, IMAP_MAIL_FILTER_FILE_NAME_IN_4x, IMAP_MAIL_FILTER_FILE_NAME_IN_5x);    if (NS_FAILED(rv)) return rv;    rv = DoTheCopyAndRename(oldIMAPLocalMailPath, newIMAPLocalMailPath, PR_TRUE, needToRenameFilterFiles,IMAP_MAIL_FILTER_FILE_NAME_IN_4x,IMAP_MAIL_FILTER_FILE_NAME_IN_5x);    if (NS_FAILED(rv)) return rv;    }    else  // Copy & Rename filter files    {      // IMAP path      // don't care if this fails      (void)DoTheCopyAndRename(oldIMAPMailPath, PR_TRUE, IMAP_MAIL_FILTER_FILE_NAME_IN_4x, IMAP_MAIL_FILTER_FILE_NAME_IN_5x);            // Local Folders path      // don't care if this fails      (void)DoTheCopyAndRename(oldIMAPLocalMailPath, PR_TRUE, IMAP_MAIL_FILTER_FILE_NAME_IN_4x, IMAP_MAIL_FILTER_FILE_NAME_IN_5x);    }  }  else if (serverType == POP_4X_MAIL_TYPE) {    // fix for bug #202010    // copy over the pop filter and popstate files now    // and later, in DoSpecialUpdates()    // we'll move and rename them#ifdef POP_MAIL_FILTER_FILE_NAME_IN_4x    rv = DoTheCopy(oldProfilePath, newProfilePath, POP_MAIL_FILTER_FILE_NAME_IN_4x);    if (NS_FAILED(rv)) return rv;#endif    #ifdef POPSTATE_FILE_IN_4x     rv = DoTheCopy(oldProfilePath, newProfilePath, POPSTATE_FILE_IN_4x);    if (NS_FAILED(rv)) return rv;#endif        rv = DoTheCopy(oldPOPMailPath, newPOPMailPath, PR_TRUE);    if (NS_FAILED(rv)) return rv;  }#ifdef HAVE_MOVEMAIL  else if (serverType == MOVEMAIL_4X_MAIL_TYPE) {    // in 4.x, the movemail filter name was the same as the pop filter name    // copy over the filter file now    // and later, in DoSpecialUpdates()    // we'll move and rename them    rv = DoTheCopy(oldProfilePath, newProfilePath, POP_MAIL_FILTER_FILE_NAME_IN_4x);    if (NS_FAILED(rv)) return rv;        rv = DoTheCopy(oldMOVEMAILMailPath, newMOVEMAILMailPath, PR_TRUE);  }#endif /* HAVE_MOVEMAIL */  else {    NS_ASSERTION(0, "unknown mail server type!");    return NS_ERROR_FAILURE;  }    // Don't inherit the 4.x cache file location for mozilla!  // The cache pref later gets set with a default in nsAppRunner::InitCachePrefs().  mPrefs->ClearUserPref(PREF_BROWSER_CACHE_DIRECTORY);  rv = DoSpecialUpdates(newProfilePath);  if (NS_FAILED(rv)) return rv;    PR_FREEIF(popServerName);  nsXPIDLCString path;  newProfilePath->GetNativePath(getter_Copies(path));  NS_NewNativeLocalFile(path, PR_TRUE, getter_AddRefs(newPrefsFile));  rv = newPrefsFile->AppendNative(NS_LITERAL_CSTRING(PREF_FILE_NAME_IN_5x));  if (NS_FAILED(rv)) return rv;  rv=mPrefs->SavePrefFile(newPrefsFile);  if (NS_FAILED(rv)) return rv;  rv=mPrefs->ResetPrefs();  if (NS_FAILED(rv)) return rv;  PRBool flagExists = PR_FALSE;  m_prefsFile->Exists(&flagExists); //Delete the prefs.js file in the temp directory.  if (flagExists)    m_prefsFile->Remove(PR_FALSE);    systemTempDir->Exists(&flagExists); //Delete the unique dir in the system temp dir.  if (flagExists)    systemTempDir->Remove(PR_FALSE);  return rv;}nsresult nsDogbertProfileMigrator::CreateNewUser5Tree(nsIFileSpec * oldProfilePath, nsIFileSpec * newProfilePath){  nsresult rv;  PRBool exists;    NS_ASSERTION(*PREF_FILE_NAME_IN_4x, "don't know how to migrate your platform");  if (!*PREF_FILE_NAME_IN_4x) {    return NS_ERROR_UNEXPECTED;  }        /* Copy the old prefs file to the new profile directory for modification and reading.       after copying it, rename it to pref.js, the 5.x pref file name on all platforms */  nsCOMPtr<nsIFileSpec> oldPrefsFile;  rv = NS_NewFileSpec(getter_AddRefs(oldPrefsFile));   if (NS_FAILED(rv)) return rv;    rv = oldPrefsFile->FromFileSpec(oldProfilePath);  if (NS_FAILED(rv)) return rv;    rv = oldPrefsFile->AppendRelativeUnixPath(PREF_FILE_NAME_IN_4x);  if (NS_FAILED(rv)) return rv;  /* the new prefs file */  nsCOMPtr<nsIFileSpec> newPrefsFile;  rv = NS_NewFileSpec(getter_AddRefs(newPrefsFile));   if (NS_FAILED(rv)) return rv;    rv = newPrefsFile->FromFileSpec(newProfilePath);  if (NS_FAILED(rv)) return rv;    rv = newPrefsFile->Exists(&exists);  if (!exists)  {	  rv = newPrefsFile->CreateDir();  }  rv = oldPrefsFile->CopyToDir(newPrefsFile);  NS_ASSERTION(NS_SUCCEEDED(rv),"failed to copy prefs file");  rv = newPrefsFile->AppendRelativeUnixPath(PREF_FILE_NAME_IN_4x);  rv = newPrefsFile->Rename(PREF_FILE_NAME_IN_5x);  return NS_OK;}#ifdef NEED_TO_COPY_AND_RENAME_NEWSRC_FILESnsresult nsDogbertProfileMigrator::CopyAndRenameNewsrcFiles(nsIFileSpec * newPathSpec){  nsresult rv;  nsCOMPtr <nsIFileSpec>oldPathSpec;  nsFileSpec oldPath;  nsFileSpec newPath;  char* folderName = nsnull;  nsCAutoString fileOrDirNameStr;  rv = GetPremigratedFilePref(PREF_NEWS_DIRECTORY, getter_AddRefs(oldPathSpec));  if (NS_FAILED(rv)) return rv;  rv = oldPathSpec->GetFileSpec(&oldPath);  if (NS_FAILED(rv)) return rv;  rv = newPathSpec->GetFileSpec(&newPath);  if (NS_FAILED(rv)) return rv;  for (nsDirectoryIterator dir(oldPath, PR_FALSE); dir.Exists(); dir++)  {    nsFileSpec fileOrDirName = dir.Spec(); //set first file or dir to a nsFileSpec    folderName = fileOrDirName.GetLeafName();    //get the filename without the full path    fileOrDirNameStr.Assign(folderName);    if (nsCStringStartsWith(fileOrDirNameStr, NEWSRC_PREFIX_IN_4x) || nsCStringStartsWith(fileOrDirNameStr, SNEWSRC_PREFIX_IN_4x)) {#ifdef DEBUG_seth	    printf("newsrc file == %s\n",folderName);#endif /* DEBUG_seth */	    rv = fileOrDirName.CopyToDir(newPath);        NS_ASSERTION(NS_SUCCEEDED(rv),"failed to copy news file");        nsFileSpec newFile = newPath;        newFile += fileOrDirNameStr.get();        newFile.Rename(folderName + 1); /* rename .newsrc-news to newsrc-news, no need to keep it hidden anymore */    }  }  return NS_OK;}#endif /* NEED_TO_COPY_AND_RENAME_NEWSRC_FILES *//*------------------------------------------------------------------------- * DoTheCopyAndRename copies the files listed in oldPath to newPath *                    and renames files, if necessary * * INPUT: oldPath - The old profile path plus the specific data type  *                  (e.g. mail or news) *        newPath - The new profile path plus the specific data type * *        readSubdirs * *        needToRenameFiles - do we need to search for files named oldFile *                            and rename them to newFile * *        oldFile           - old file name (used for renaming) * *        newFile           - new file name (used for renaming) * * RETURNS: NS_OK if successful *          NS_ERROR_FAILURE if failed * *--------------------------------------------------------------------------*/nsresult nsDogbertProfileMigrator::DoTheCopyAndRename(nsIFileSpec * oldPathSpec, nsIFileSpec *newPathSpec, PRBool readSubdirs, PRBool needToRenameFiles, const char *oldName, const char *newName){  nsresult rv;  char* folderName = nsnull;  nsCAutoString fileOrDirNameStr;  nsFileSpec oldPath;  nsFileSpec newPath;    rv = oldPathSpec->GetFileSpec(&oldPath);  if (NS_FAILED(rv)) return rv;  rv = newPathSpec->GetFileSpec(&newPath);  if (NS_FAILED(rv)) return rv;    for (nsDirectoryIterator dir(oldPath, PR_FALSE); dir.Exists(); dir++)  {    nsFileSpec fileOrDirName = dir.Spec(); //set first file or dir to a nsFileSpec    folderName = fileOrDirName.GetLeafName();    //get the filename without the full path    fileOrDirNameStr.Assign(folderName);    if (nsCStringEndsWith(fileOrDirNameStr, MAIL_SUMMARY_SUFFIX_IN_4x) || nsCStringEndsWith(fileOrDirNameStr, NEWS_SUMMARY_SUFFIX_IN_4x) || nsCStringEndsWith(fileOrDirNameStr, SUMMARY_SUFFIX_IN_5x)) /* Don't copy the summary files */      continue;    else    {      if (fileOrDirName.IsDirectory())      {        if(readSubdirs)        {          nsCOMPtr<nsIFileSpec> newPathExtended;          rv = NS_NewFileSpecWithSpec(newPath, getter_AddRefs(newPathExtended));          rv = newPathExtended->AppendRelativeUnixPath(folderName);          rv = newPathExtended->CreateDir();                    nsCOMPtr<nsIFileSpec>fileOrDirNameSpec;          rv = NS_NewFileSpecWithSpec(fileOrDirName, getter_AddRefs(fileOrDirNameSpec));          DoTheCopyAndRename(fileOrDirNameSpec, newPathExtended, PR_TRUE, needToRenameFiles, oldName, newName); /* re-enter the DoTheCopyAndRename function */        }        else          continue;      }      else {        // copy the file        if (fileOrDirNameStr.Equals(oldName))           AddFileCopyToList(&fileOrDirName, &newPath, newName);        else          AddFileCopyToList(&fileOrDirName, &newPath, "");      }    }  }      return NS_OK;}/*------------------------------------------------------------------------- * DoTheCopyAndRename copies and renames files * * INPUT: aPath - the path * *        aReadSubdirs - if sub directories should be handled * *        aOldFile - old file name (used for renaming) * *        aNewFile - new file name (used for renaming) * * RETURNS: NS_OK if successful *          NS_ERROR_FAILURE if failed * *--------------------------------------------------------------------------*/nsresult nsDogbertProfileMigrator::DoTheCopyAndRename(nsIFileSpec * aPathSpec, PRBool aReadSubdirs, const char *aOldName, const char *aNewName){  if( !aOldName || !aNewName || !strcmp(aOldName, aNewName) )    return NS_ERROR_FAILURE;  nsresult rv;  nsFileSpec path, file;    rv = aPathSpec->GetFileSpec(&path);  if (NS_FAILED(rv))    return rv;  rv = aPathSpec->GetFileSpec(&file);  if (NS_FAILED(rv))    return rv;  file += aOldName;    // Handle sub folders  for (nsDirectoryIterator dir(path, PR_FALSE); dir.Exists(); dir++)  {    nsFileSpec fileOrDirName = dir.Spec(); //set first file or dir to a nsFileSpec    if (fileOrDirName.IsDirectory())    {      if( aReadSubdirs )      {        nsCOMPtr<nsIFileSpec>fileOrDirNameSpec;        rv = NS_NewFileSpecWithSpec(fileOrDirName, getter_AddRefs(fileOrDirNameSpec));        DoTheCopyAndRename(fileOrDirNameSpec, aReadSubdirs, aOldName, aNewName); /* re-enter the DoTheCopyAndRename function */      }      else        continue;    }  }  nsCOMPtr<nsILocalFile> localFileOld, localFileDirectory;  rv = NS_FileSpecToIFile(&file, getter_AddRefs(localFileOld));  if (NS_FAILED(rv))    return rv;  rv = NS_FileSpecToIFile(&path, getter_AddRefs(localFileDirectory));  if (NS_FAILED(rv))    return rv;  nsAutoString newName = NS_ConvertUTF8toUCS2(aNewName);  localFileOld->CopyTo(localFileDirectory, newName);  return NS_OK;}nsresult nsDogbertProfileMigrator::CopyFilesByPattern(nsIFileSpec * oldPathSpec, nsIFileSpec * newPathSpec, const char *pattern){  nsFileSpec oldPath;  nsFileSpec newPath;    nsresult rv = oldPathSpec->GetFileSpec(&oldPath);  NS_ENSURE_SUCCESS(rv,rv);  rv = newPathSpec->GetFileSpec(&newPath);  NS_ENSURE_SUCCESS(rv,rv);    for (nsDirectoryIterator dir(oldPath, PR_FALSE); dir.Exists(); dir++)  {    nsFileSpec fileOrDirName = dir.Spec();    //set first file or dir to a nsFileSpec    if (fileOrDirName.IsDirectory())      continue;    nsCAutoString fileOrDirNameStr(fileOrDirName.GetLeafName());    if (!nsCStringEndsWith(fileOrDirNameStr, pattern))      continue;    AddFileCopyToList(&fileOrDirName, &newPath, "");  }      return NS_OK;}nsresult nsDogbertProfileMigrator::AddFileCopyToList(nsFileSpec * aOldPath, nsFileSpec * aNewPath, const char * newName){  // convert to nsIFile  nsCOMPtr<nsILocalFile> oldPathFile;  nsCOMPtr<nsILocalFile> newPathFile;  NS_FileSpecToIFile(aOldPath, getter_AddRefs(oldPathFile));  NS_FileSpecToIFile(aNewPath, getter_AddRefs(newPathFile));  fileTransactionEntry* fileEntry = new fileTransactionEntry;  fileEntry->srcFile = do_QueryInterface(oldPathFile);  fileEntry->destFile = do_QueryInterface(newPathFile);  fileEntry->newName = NS_ConvertUTF8toUCS2(newName);  mFileCopyTransactions->AppendElement((void*) fileEntry);  return NS_OK;}nsresult nsDogbertProfileMigrator::DoTheCopy(nsIFileSpec * oldPath, nsIFileSpec * newPath, PRBool readSubdirs){  return DoTheCopyAndRename(oldPath, newPath, readSubdirs, PR_FALSE, "", "");}nsresult nsDogbertProfileMigrator::DoTheCopy(nsIFileSpec * oldPath, nsIFileSpec * newPath, const char *fileOrDirName, PRBool isDirectory){  nsresult rv;  if (isDirectory)  {

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕成人av| 免费一级片91| 暴力调教一区二区三区| 欧美国产1区2区| 丁香一区二区三区| 亚洲精品国产a| 91精品在线麻豆| 激情综合色播激情啊| 国产日韩精品久久久| 99精品视频在线免费观看| 一区二区三区在线视频观看| 在线观看精品一区| 视频一区中文字幕| 久久久久久久久久久久电影| 大白屁股一区二区视频| 一区二区三区自拍| 日韩你懂的电影在线观看| 国产高清久久久| 亚洲国产欧美在线人成| 日韩美女在线视频| caoporen国产精品视频| 亚洲综合在线观看视频| 欧美电影在线免费观看| 国产一区二区主播在线| 中文字幕中文字幕一区二区| 欧美日韩视频在线观看一区二区三区| 久久国产福利国产秒拍| 中文字幕日韩一区二区| 欧美精品一卡二卡| 成人污污视频在线观看| 亚洲国产成人tv| 中文无字幕一区二区三区| 欧美亚洲综合色| 成人黄色777网| 蜜臀精品一区二区三区在线观看| 久久综合九色综合久久久精品综合| 91在线一区二区三区| 久草这里只有精品视频| 国产精品嫩草99a| 欧美男人的天堂一二区| 欧美日韩国产另类一区| 日本一不卡视频| 日韩欧美国产三级电影视频| 色综合天天综合网国产成人综合天| 日本vs亚洲vs韩国一区三区 | 日韩欧美国产三级电影视频| 不卡视频在线看| 久久精品国产99| 亚洲一区二区在线视频| 国产精品麻豆网站| 精品国产乱码91久久久久久网站| 色8久久人人97超碰香蕉987| 国产成人在线免费观看| 欧美aaa在线| 亚洲图片一区二区| 亚洲手机成人高清视频| 久久久.com| 日韩欧美另类在线| 欧美日韩中文另类| 91免费版在线| 成人午夜伦理影院| 国产激情视频一区二区在线观看 | 国产精品福利在线播放| 欧美精品一区二区三区很污很色的| 在线观看91精品国产入口| 99久久er热在这里只有精品66| 国内外成人在线| 美国十次综合导航| 日韩1区2区3区| 日韩高清欧美激情| 日韩成人av影视| 免费成人av资源网| 青青草国产成人av片免费| 亚洲国产一区二区a毛片| 亚洲精品中文在线影院| 亚洲老妇xxxxxx| 亚洲三级电影网站| 亚洲免费观看在线观看| 亚洲欧美激情视频在线观看一区二区三区 | 中文字幕中文字幕一区| 国产精品国产三级国产aⅴ原创| 久久九九影视网| 国产精品午夜免费| 亚洲欧美一区二区不卡| 亚洲一区自拍偷拍| 无码av免费一区二区三区试看| 天天射综合影视| 蜜桃视频一区二区三区在线观看| 黄色日韩网站视频| 国产精品123| 99国产精品久久久久久久久久| 972aa.com艺术欧美| 在线视频你懂得一区二区三区| 精品1区2区3区| 日韩丝袜情趣美女图片| 26uuuu精品一区二区| 欧美国产精品v| 亚洲一区中文在线| 久久91精品久久久久久秒播| 成人精品视频.| 欧美日韩一区中文字幕| 精品动漫一区二区三区在线观看| 国产嫩草影院久久久久| 一区二区三区精密机械公司| 日韩和欧美一区二区三区| 国产精品综合二区| 在线影院国内精品| 精品福利在线导航| 一区二区激情视频| 久久91精品久久久久久秒播| 91香蕉视频黄| 精品国产91乱码一区二区三区| 国产精品夫妻自拍| 免费三级欧美电影| 成人av网站在线| 欧美一卡2卡3卡4卡| 国产精品丝袜91| 日本在线观看不卡视频| 91影视在线播放| 精品福利一二区| 亚洲一线二线三线视频| 国产成人在线免费观看| 欧美老人xxxx18| 国产精品久久久久久久蜜臀| 日韩av二区在线播放| 成人动漫av在线| 欧美tickle裸体挠脚心vk| 自拍偷拍欧美激情| 国产一区福利在线| 欧美日韩一区久久| 亚洲欧洲精品成人久久奇米网| 日精品一区二区| 色婷婷综合在线| 中文字幕av一区 二区| 青青青伊人色综合久久| 欧美亚洲综合在线| ●精品国产综合乱码久久久久| 国产在线播放一区| 91精品国产91综合久久蜜臀| 亚洲精品国产品国语在线app| 国产精品系列在线播放| 欧美成人精品福利| 五月婷婷综合激情| 欧洲中文字幕精品| 亚洲人成在线观看一区二区| 国内成人精品2018免费看| 欧美顶级少妇做爰| 亚洲一区二区av在线| 成人福利电影精品一区二区在线观看| 欧美成人性战久久| 久久精品99国产精品| 欧美人体做爰大胆视频| 亚洲一区二区中文在线| 一本一道久久a久久精品综合蜜臀| 国产亚洲视频系列| 国产尤物一区二区| 精品国产乱码久久久久久1区2区| 久久精品噜噜噜成人88aⅴ| 欧美日韩国产高清一区二区三区| 亚洲激情校园春色| 色88888久久久久久影院野外| 中文字幕在线一区| 不卡av在线免费观看| 国产精品入口麻豆九色| 成人av资源网站| 亚洲欧美日韩人成在线播放| 99久久免费精品高清特色大片| 国产精品福利一区二区| 99久久久精品| 亚洲女同一区二区| 欧美影视一区在线| 亚洲大尺度视频在线观看| 欧美色综合久久| 美女一区二区三区| 久久久国产精品麻豆| 不卡的av中国片| 亚洲一区二区av电影| 欧美日韩国产电影| 免费看欧美女人艹b| 久久女同互慰一区二区三区| 国产高清无密码一区二区三区| 国产精品免费久久| 91成人国产精品| 青草国产精品久久久久久| 久久综合九色综合欧美98| 粉嫩嫩av羞羞动漫久久久| 综合色中文字幕| 欧美精品日韩一区| 国产乱码精品一区二区三区忘忧草 | 日本三级亚洲精品| 久久久99免费| 一本色道久久综合亚洲精品按摩| 亚洲国产精品久久艾草纯爱| 制服丝袜亚洲色图| 国产成人综合亚洲网站| 亚洲美女免费在线| 精品欧美黑人一区二区三区| 国产91精品一区二区| 亚洲第一av色| 国产精品私人影院|