本文整理汇总了C#中System.IO.FileInfo.ShouldNotBeNull方法的典型用法代码示例。如果您正苦于以下问题:C# FileInfo.ShouldNotBeNull方法的具体用法?C# FileInfo.ShouldNotBeNull怎么用?C# FileInfo.ShouldNotBeNull使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.IO.FileInfo
的用法示例。
在下文中一共展示了FileInfo.ShouldNotBeNull方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Download
/// <summary>
/// FTP 원격 파일을 지정한 로칼 파일로 저장한다.
/// </summary>
/// <param name="remoteFilename">원격 파일 전체 경로 (예: /Users/debop/readme.txt)</param>
/// <param name="localFI">로칼 파일 정보</param>
/// <param name="canOverwrite">겹쳐쓰기 여부</param>
/// <returns>다운로드 여부</returns>
public virtual bool Download(string remoteFilename, FileInfo localFI, bool canOverwrite = false) {
localFI.ShouldNotBeNull("localFI");
if(IsDebugEnabled)
log.Debug("원격 파일을 다운로드 합니다... remoteFilename=[{0}], localFilename=[{1}], canOverwrite=[{2}]",
remoteFilename, localFI.FullName, canOverwrite);
if(localFI.Exists && !canOverwrite)
throw new FtpException("로컬 파일이 이미 존재합니다. localFile=" + localFI.FullName);
bool isDownload;
using(var localStream = new BufferedStream(localFI.OpenWrite())) {
isDownload = Download(remoteFilename, localStream);
if(isDownload)
localStream.Flush();
}
if(isDownload == false)
With.TryAction(() => localFI.Delete());
if(IsDebugEnabled)
log.Debug("원격 파일[{0}]을 다운로드 작업을 마쳤습니다. 로컬 파일=[{1}], 성공여부=[{2}]",
remoteFilename, localFI.FullName, isDownload);
return isDownload;
}
示例2: UploadTask
/// <summary>
/// <paramref name="ftpClient"/>를 이용하여, 로컬 파일 스트림을 FTP 서버로 Upload 합니다.
/// </summary>
/// <param name="ftpClient"></param>
/// <param name="localFi"></param>
/// <param name="remoteFilename">원격 파일 경로</param>
/// <returns></returns>
public static Task<bool> UploadTask(this FtpClient ftpClient, FileInfo localFi, string remoteFilename = null) {
localFi.ShouldNotBeNull("localFi");
if(IsDebugEnabled)
log.Debug("FTP 서버로 파일[{0}]을 비동기 방식으로 업로드합니다... 원격파일=[{1}]", localFi.FullName, remoteFilename);
var stream = localFi.OpenRead();
return
UploadTask(ftpClient, stream, remoteFilename ?? localFi.Name)
.ContinueWith(t => {
stream.Close();
return t.Result;
},
TaskContinuationOptions.ExecuteSynchronously);
}
示例3: Upload
/// <summary>
/// 지정된 로칼 파일을 FTP 서버에 지정된 파일명으로 저장한다.
/// </summary>
/// <param name="fi"></param>
/// <param name="remoteFilename"></param>
/// <returns></returns>
public virtual bool Upload(FileInfo fi, string remoteFilename) {
fi.ShouldNotBeNull("fi");
if(IsDebugEnabled)
log.Debug("Upload local file to ftp server. local file=[{0}], remoteFilename=[{1}]", fi.FullName, remoteFilename);
if(remoteFilename.IsWhiteSpace()) // 원격파일명을 지정하지 않은 경우는
remoteFilename = CurrentDirectory + fi.Name;
using(var bs = new BufferedStream(fi.OpenRead()))
return Upload(bs, remoteFilename);
}
示例4: DownloadTask
/// <summary>
/// FTP 서버의 원격 파일을 로컬로 비동기 방식으로 다운로드 받습니다.
/// </summary>
public static Task<bool> DownloadTask(this FtpClient ftpClient, string remoteFilename, FileInfo localFi) {
localFi.ShouldNotBeNull("localFi");
if(IsDebugEnabled)
log.Debug("원격 파일을 다운로드 받는 작업을 생성합니다... remoteFilename=[{0}], localFi=[{1}]", remoteFilename, localFi.FullName);
var stream = localFi.OpenWrite();
return
DownloadTask(ftpClient, remoteFilename, stream)
.ContinueWith(t => {
stream.Close();
return t.Result;
},
TaskContinuationOptions.ExecuteSynchronously);
}