/* attribute wstring toFileName; */ NS_IMETHODIMP nsPrintSettingsGTK::GetToFileName(char16_t * *aToFileName) { // Get the gtk output filename const char* gtk_output_uri = gtk_print_settings_get(mPrintSettings, GTK_PRINT_SETTINGS_OUTPUT_URI); if (!gtk_output_uri) { *aToFileName = ToNewUnicode(mToFileName); return NS_OK; } // Convert to an nsIFile nsCOMPtr<nsIFile> file; nsresult rv = NS_GetFileFromURLSpec(nsDependentCString(gtk_output_uri), getter_AddRefs(file)); if (NS_FAILED(rv)) return rv; // Extract the path nsAutoString path; rv = file->GetPath(path); NS_ENSURE_SUCCESS(rv, rv); *aToFileName = ToNewUnicode(path); return NS_OK; }
nsresult nsMsgAttachment::DeleteAttachment() { nsresult rv; PRBool isAFile = PR_FALSE; nsCOMPtr<nsIFile> urlFile; rv = NS_GetFileFromURLSpec(mUrl, getter_AddRefs(urlFile)); NS_ASSERTION(NS_SUCCEEDED(rv), "Can't nsIFile from URL string"); if (NS_SUCCEEDED(rv)) { PRBool bExists = PR_FALSE; rv = urlFile->Exists(&bExists); NS_ASSERTION(NS_SUCCEEDED(rv), "Exists() call failed!"); if (NS_SUCCEEDED(rv) && bExists) { rv = urlFile->IsFile(&isAFile); NS_ASSERTION(NS_SUCCEEDED(rv), "IsFile() call failed!"); } } // remove it if it's a valid file if (isAFile) rv = urlFile->Remove(PR_FALSE); return rv; }
nsresult nsNetscapeProfileMigratorBase::SetFile(PrefTransform* aTransform, nsIPrefBranch* aBranch) { // In this case targetPrefName is just an additional preference // that needs to be modified and not what the sourcePrefName is // going to be saved to once it is modified. nsresult rv = NS_OK; if (aTransform->prefHasValue) { nsCString fileURL(aTransform->stringValue); nsCOMPtr<nsIFile> aFile; // Start off by assuming fileURL is a URL spec and // try and get a File from it. rv = NS_GetFileFromURLSpec(fileURL, getter_AddRefs(aFile)); if (NS_FAILED(rv)) { // Okay it wasn't a URL spec so assume it is a localfile, // if this fails then just don't set anything. nsCOMPtr<nsIFile> localFile; rv = NS_NewNativeLocalFile(fileURL, false, getter_AddRefs(localFile)); if (NS_FAILED(rv)) return NS_OK; aFile = localFile; } // Now test to see if File exists and is an actual file. bool exists = false; rv = aFile->Exists(&exists); if (NS_SUCCEEDED(rv) && exists) rv = aFile->IsFile(&exists); if (NS_SUCCEEDED(rv) && exists) { // After all that let's just get the URL spec and set the pref to it. rv = NS_GetURLSpecFromFile(aFile, fileURL); if (NS_FAILED(rv)) return NS_OK; rv = aBranch->SetCharPref(aTransform->sourcePrefName, fileURL.get()); if (NS_SUCCEEDED(rv) && aTransform->targetPrefName) rv = aBranch->SetIntPref(aTransform->targetPrefName, 1); } } return rv; }
bool FileSystemDataSource::isDirURI(nsIRDFResource* source) { nsresult rv; const char *uri = nullptr; rv = source->GetValueConst(&uri); if (NS_FAILED(rv)) return(false); nsCOMPtr<nsIFile> aDir; rv = NS_GetFileFromURLSpec(nsDependentCString(uri), getter_AddRefs(aDir)); if (NS_FAILED(rv)) return(false); bool isDirFlag = false; rv = aDir->IsDirectory(&isDirFlag); if (NS_FAILED(rv)) return(false); return(isDirFlag); }
nsresult FileSystemDataSource::getIEFavoriteURL(nsIRDFResource *source, nsString aFileURL, nsIRDFLiteral **urlLiteral) { nsresult rv = NS_OK; *urlLiteral = nullptr; nsCOMPtr<nsIFile> f; NS_GetFileFromURLSpec(NS_ConvertUTF16toUTF8(aFileURL), getter_AddRefs(f)); bool value; if (NS_SUCCEEDED(f->IsDirectory(&value)) && value) { if (isValidFolder(source)) return(NS_RDF_NO_VALUE); aFileURL.AppendLiteral("desktop.ini"); } else if (aFileURL.Length() > 4) { nsAutoString extension; aFileURL.Right(extension, 4); if (!extension.LowerCaseEqualsLiteral(".url")) { return(NS_RDF_NO_VALUE); } } nsCOMPtr<nsIInputStream> strm; NS_NewLocalFileInputStream(getter_AddRefs(strm),f); nsCOMPtr<nsILineInputStream> linereader = do_QueryInterface(strm, &rv); nsAutoString line; nsAutoCString cLine; while(NS_SUCCEEDED(rv)) { bool isEOF; rv = linereader->ReadLine(cLine, &isEOF); CopyASCIItoUTF16(cLine, line); if (isEOF) { if (line.Find("URL=", true) == 0) { line.Cut(0, 4); rv = mRDFService->GetLiteral(line.get(), urlLiteral); break; } else if (line.Find("CDFURL=", true) == 0) { line.Cut(0, 7); rv = mRDFService->GetLiteral(line.get(), urlLiteral); break; } line.Truncate(); } } return(rv); }