nsXPIDLCString uri; rv = source->GetValue( getter_Copies(uri) ); if (NS_FAILED(rv)) return rv;  nsFileURL	fileURL(uri); nsFileSpec	fileSpec(fileURL); if (fileSpec.IsDirectory()) {
if (isDirFlag == PR_TRUE) {
FileSystemDataSource::ArcLabelsOut(nsIRDFResource *source,                             nsISimpleEnumerator **labels /* out */){	NS_PRECONDITION(source != nsnull, "null ptr");	if (! source)		return NS_ERROR_NULL_POINTER;	NS_PRECONDITION(labels != nsnull, "null ptr");	if (! labels)		return NS_ERROR_NULL_POINTER;	nsresult rv;	if (source == kNC_FileSystemRoot)	{		nsCOMPtr<nsISupportsArray> array;		rv = NS_NewISupportsArray(getter_AddRefs(array));		if (NS_FAILED(rv)) return rv;		array->AppendElement(kNC_Child);		array->AppendElement(kNC_pulse);		nsISimpleEnumerator* result = new nsArrayEnumerator(array);		if (! result)			return NS_ERROR_OUT_OF_MEMORY;		NS_ADDREF(result);		*labels = result;		return NS_OK;	}	else if (isFileURI(source))	{		nsCOMPtr<nsISupportsArray> array;		rv = NS_NewISupportsArray(getter_AddRefs(array));		if (NS_FAILED(rv)) return rv;		nsXPIDLCString uri;		rv = source->GetValue( getter_Copies(uri) );		if (NS_FAILED(rv)) return rv;		nsFileURL	fileURL(uri);		nsFileSpec	fileSpec(fileURL);		if (fileSpec.IsDirectory()) {#ifdef	XP_WIN			if (isValidFolder(source) == PR_TRUE)			{				array->AppendElement(kNC_Child);			}#else			array->AppendElement(kNC_Child);#endif			array->AppendElement(kNC_pulse);		}		array->AppendElement(kRDF_type);		nsISimpleEnumerator* result = new nsArrayEnumerator(array);		if (! result)			return NS_ERROR_OUT_OF_MEMORY;		NS_ADDREF(result);		*labels = result;		return NS_OK;	}	return NS_NewEmptyEnumerator(labels);}