我將images[]
分配給一個數組,該數組保存具有給定Directory的完整路徑的圖像文件名。使用Directory.GetFiles()的字符串操作
string[] images = DirLoad.FileNamesArray(
IO.Loaders.PathType.full,
IO.Loaders.FileExtension.jpg
);
......現在,這images[]
存儲所有的文件名,我需要,我不得不使用完整路徑把它完成,
使用Directory.GetFiles()
下一步行動需要它作爲本地文件名稱。
(每個然後作爲字符串類型的參數傳遞給另一個方法)
所以我的問題是:
我如何可以省略第一部分 - HttpRuntime.AppDomainAppPath
......如果它在陣列中的每個元素相同?
這是用法示例中,字符串是currentDir
我需要從每個元素images[]
public class IO
{
public class Loaders
{
readonly string currentDir = HttpRuntime.AppDomainAppPath;
public string selecedDirName { get; set; }
/// <summary>
/// assign The Loaders.selectedDir First before calling
/// </summary>
/// <param name="foldertoLoad"></param>
/// <returns></returns>
public enum PathType
{
full, local
}
public enum FileExtension
{
jpg,png,txt,xml,htm,js,aspx,css
}
public string[] FileNamesArray(PathType SelectedPathMode, FileExtension selectedfileType)
{
string thisFolder = "";
string thatFileType= string.Format("*.{0}",selectedfileType.ToString());
switch (SelectedPathMode)
{
case PathType.full:
thisFolder = Path.Combine(currentDir, selecedDirName);
break;
case PathType.local:
thisFolder = selecedDirName;
break;
default:
break;
}
string[] foundArr = Directory.GetFiles(thisFolder, thatFileType);
return foundArr;
}
}
}
更新修剪,這是我已經試過
string fileName;
string[] images = DirLoad.FilesArray(IO.Loaders.PathType.full, IO.Loaders.FileExtention.jpg);
foreach (var currImage in images)
{
int startingAt = DirLoad.currentDir.Length ;
int finalPoint = currImage.Length - startingAt;
fileName = new String(currImage.ToCharArray(startingAt, finalPoint));
baseStyle.Add(string.Format("{0}url({1}) {2}", BackGroundCssProp, fileName, imageProps));
}
return baseStyle.ToArray();
它;還不清楚對我來說,你」重新努力完成。然而它是'var fileNamesOnly = Directory.GetFiles(@「path」)。Select(f => Path.GetFileName(f));'?? – horgh
@KonstantinVasilcov .. 它可能...沒有機會檢查它... – LoneXcoder
@KonstantinVasilcov你可以請發佈一個答案,我已經更新了我的問題中的用法,你如何實現'Path.GetFile( )'在字符串? – LoneXcoder