当前位置: 首页>>代码示例>>C#>>正文


C# IFileSystem.ResolveFile方法代码示例

本文整理汇总了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();
		}
开发者ID:Euphrates-Media,项目名称:Platform.VirtualFileSystem,代码行数:50,代码来源:ShadowNodeContent.cs

示例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;
    }
开发者ID:Mariamfelicia,项目名称:nreco,代码行数:69,代码来源:ImageHelper.cs


注:本文中的IFileSystem.ResolveFile方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。