本文整理汇总了C#中IFileSystem.ResolveFile方法的典型用法代码示例。如果您正苦于以下问题:C# IFileSystem.ResolveFile方法的具体用法?C# IFileSystem.ResolveFile怎么用?C# IFileSystem.ResolveFile使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IFileSystem
的用法示例。
在下文中一共展示了IFileSystem.ResolveFile方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ShadowNodeContent
public ShadowNodeContent(ShadowFile shadowFile, IFile file, IFileSystem tempFileSystem)
{
var buffer = new StringBuilder(file.Address.Uri.Length * 3);
this.shadowFile = shadowFile;
this.tempFileSystem = tempFileSystem;
this.file = tempFileSystem.ResolveFile(GenerateName());
buffer.Append(ComputeHash(file.Address.Uri).TrimRight('='));
var value = (string)file.Address.QueryValues["length"];
if (value != null)
{
this.targetLength = Convert.ToInt64(value);
buffer.Append('_').Append(value);
}
value = (string)file.Address.QueryValues["md5sum"];
if (value != null)
{
this.targetMd5 = Convert.FromBase64String(value);
buffer.Append('_').Append(value);
}
value = (string)file.Address.QueryValues["creationtime"];
if (value != null)
{
this.hasCreationTime = true;
this.creationTime = Convert.ToDateTime(value);
buffer.Append('_').Append(this.creationTime.Ticks.ToString());
}
value = (string)file.Address.QueryValues["writetime"];
if (value != null)
{
this.hasLastWriteTime = true;
this.lastWriteTime = Convert.ToDateTime(value);
buffer.Append('_').Append(this.lastWriteTime.Ticks.ToString());
}
value = buffer.ToString();
}
示例2: SaveAndResizeImage
public static IFileObject SaveAndResizeImage(Stream input, IFileSystem fs, IFileObject file, int maxWidth, int maxHeight, ImageFormat saveAsFormat )
{
Image img;
MemoryStream imgSrcStream = new MemoryStream();
byte[] buf = new byte[1024*50];
int bufRead = 0;
do {
bufRead = input.Read(buf, 0, buf.Length);
if (bufRead>0)
imgSrcStream.Write(buf, 0, bufRead);
} while (bufRead>0);
imgSrcStream.Position = 0;
try {
img = Image.FromStream(imgSrcStream);
} catch (Exception ex) {
throw new Exception( WebManager.GetLabel("Invalid image format") );
}
if (img.Size.Width==0 || img.Size.Height==0)
throw new Exception( WebManager.GetLabel("Invalid image size") );
var sizeIsWidthOk = (maxWidth<=0 || img.Size.Width<=maxWidth);
var sizeIsHeightOk = (maxHeight<=0 || img.Size.Height<=maxHeight);
var sizeIsOk = sizeIsWidthOk && sizeIsHeightOk;
var originalImgFmt = ResolveImageFormat( Path.GetExtension(file.Name) ) ?? ImageFormat.Bmp;
var formatIsOk = (saveAsFormat==null && !originalImgFmt.Equals(ImageFormat.Bmp) && !originalImgFmt.Equals(ImageFormat.Tiff) ) || originalImgFmt.Equals(saveAsFormat);
if (!formatIsOk || !sizeIsOk ) {
var saveAsFormatResolved = saveAsFormat!=null ? saveAsFormat : (originalImgFmt==ImageFormat.Jpeg?ImageFormat.Jpeg:ImageFormat.Png);
var newFmtExtension = GetImageFormatExtension(saveAsFormatResolved);
var newFile = fs.ResolveFile( file.Name + (Path.GetExtension(file.Name).ToLower()==newFmtExtension ? String.Empty : newFmtExtension) );
newFile.CreateFile();
if (!sizeIsOk) {
var newWidth = img.Size.Width;
var newHeight = img.Size.Height;
if (!sizeIsWidthOk) {
newWidth = maxWidth;
newHeight = (int) Math.Floor( ((double)img.Size.Height)*( ((double)maxWidth)/((double)img.Size.Width) ) );
if ( maxHeight<0 || newHeight<=maxHeight )
sizeIsHeightOk = true;
}
if (!sizeIsHeightOk) {
newHeight = maxHeight;
newWidth = (int) Math.Floor( ((double)img.Size.Width)*( ((double)maxHeight)/((double)img.Size.Height) ) );
}
var resizedBitmap = new Bitmap(img, newWidth, newHeight);
var imageProps = img.PropertyItems;
foreach (PropertyItem propItem in imageProps){
resizedBitmap.SetPropertyItem(propItem);
}
SaveImage(resizedBitmap, newFile.GetContent().OutputStream, saveAsFormatResolved);
} else {
SaveImage(img, newFile.GetContent().OutputStream, saveAsFormatResolved );
}
newFile.Close();
return newFile;
}
file.CreateFile();
imgSrcStream.Position = 0;
file.CopyFrom( imgSrcStream );
file.Close();
return file;
}