本文整理汇总了Java中java.nio.file.Files.createLink方法的典型用法代码示例。如果您正苦于以下问题:Java Files.createLink方法的具体用法?Java Files.createLink怎么用?Java Files.createLink使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类java.nio.file.Files
的用法示例。
在下文中一共展示了Files.createLink方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: testEqual_links
import java.nio.file.Files; //导入方法依赖的package包/类
public void testEqual_links() throws IOException {
try (FileSystem fs = Jimfs.newFileSystem(Configuration.unix())) {
Path fooPath = fs.getPath("foo");
MoreFiles.asCharSink(fooPath, UTF_8).write("foo");
Path fooSymlink = fs.getPath("symlink");
Files.createSymbolicLink(fooSymlink, fooPath);
Path fooHardlink = fs.getPath("hardlink");
Files.createLink(fooHardlink, fooPath);
assertThat(MoreFiles.equal(fooPath, fooSymlink)).isTrue();
assertThat(MoreFiles.equal(fooPath, fooHardlink)).isTrue();
assertThat(MoreFiles.equal(fooSymlink, fooHardlink)).isTrue();
}
}
示例2: swizzle
import java.nio.file.Files; //导入方法依赖的package包/类
/**
* ******** Transaction support **********
*/
@Override
public void swizzle(long oid) {
Path shadow_location = transactionsPath(oid);
if (!shadow_location.toFile().exists()) {
ErrorHandling.error("******* Transaction error:Shadow file does not exist *******");
}
Path primary_location = filePath(oid);
if (!primary_location.toFile().exists()) {
ErrorHandling.error("******* Transaction error: Primary file does not exist *******");
}
if (!primary_location.toFile().delete()) {
ErrorHandling.error("******* Transaction error: Primary file cannot be deleted *******");
}
try {
Files.createLink(primary_location, shadow_location);
} catch (IOException e) {
ErrorHandling.error("******* Transaction error: Primary file cannot be linked from shadow *******");
}
if (!shadow_location.toFile().delete()) {
ErrorHandling.error("******* Transaction error: Shadow file cannot be deleted *******");
}
}
示例3: doPreUpgrade
import java.nio.file.Files; //导入方法依赖的package包/类
/**
* Perform any steps that must succeed across all storage dirs/JournalManagers
* involved in an upgrade before proceeding onto the actual upgrade stage. If
* a call to any JM's or local storage dir's doPreUpgrade method fails, then
* doUpgrade will not be called for any JM. The existing current dir is
* renamed to previous.tmp, and then a new, empty current dir is created.
*
* @param conf configuration for creating {@link EditLogFileOutputStream}
* @param sd the storage directory to perform the pre-upgrade procedure.
* @throws IOException in the event of error
*/
static void doPreUpgrade(Configuration conf, StorageDirectory sd)
throws IOException {
LOG.info("Starting upgrade of storage directory " + sd.getRoot());
// rename current to tmp
renameCurToTmp(sd);
final File curDir = sd.getCurrentDir();
final File tmpDir = sd.getPreviousTmp();
List<String> fileNameList = IOUtils.listDirectory(tmpDir, new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
return dir.equals(tmpDir)
&& name.startsWith(NNStorage.NameNodeFile.EDITS.getName());
}
});
for (String s : fileNameList) {
File prevFile = new File(tmpDir, s);
File newFile = new File(curDir, prevFile.getName());
Files.createLink(newFile.toPath(), prevFile.toPath());
}
}
示例4: linkInputs
import java.nio.file.Files; //导入方法依赖的package包/类
private void linkInputs(
Path execDir,
Digest inputRoot,
Map<Digest, Directory> directoriesIndex,
List<String> inputFiles)
throws IOException, InterruptedException {
Directory directory = directoriesIndex.get(inputRoot);
for (FileNode fileNode : directory.getFilesList()) {
Path execPath = execDir.resolve(fileNode.getName());
String fileCacheKey = worker.fileCache.put(fileNode.getDigest(), fileNode.getIsExecutable());
if (fileCacheKey == null) {
throw new IOException("InputFetchStage: Failed to create cache entry for " + execPath);
}
inputFiles.add(fileCacheKey);
Files.createLink(execPath, worker.fileCache.getPath(fileCacheKey));
}
for (DirectoryNode directoryNode : directory.getDirectoriesList()) {
Digest digest = directoryNode.getDigest();
String name = directoryNode.getName();
Path dirPath = execDir.resolve(name);
Files.createDirectories(dirPath);
linkInputs(dirPath, digest, directoriesIndex, inputFiles);
}
}
示例5: move
import java.nio.file.Files; //导入方法依赖的package包/类
public static boolean move(File src, String dest) {
File destFile = new File(dest + src.getPath().substring(src.getPath().indexOf("\\") + 1));
boolean pass = true;
if (destFile.isFile()) {
pass = pass && destFile.delete();
}
if (pass) {
if (AV.save.getBool(Settings.MOVE_PACKAGE_FILES)) {
pass = pass && Ln.moveFile(src, destFile, false);
} else {
try {
Ln.makeDirs(destFile);
Files.createLink(destFile.toPath(), src.toPath());
pass = pass && destFile.exists();
} catch (IOException | UnsupportedOperationException ex) {
SPGlobal.logException(ex);
try {
Files.copy(destFile.toPath(), src.toPath());
} catch (IOException ex1) {
SPGlobal.logException(ex1);
pass = false;
}
}
}
}
return pass;
}
示例6: StreamingOutputForDavFile
import java.nio.file.Files; //导入方法依赖的package包/类
/**
* Constructor.
* @param fileFullPath Full path of the file to be read
* @param cellId Cell ID
* @param encryptionType encryption type
* @throws BinaryDataNotFoundException Error when file does not exist.
*/
public StreamingOutputForDavFile(String fileFullPath, String cellId, String encryptionType)
throws BinaryDataNotFoundException {
if (!Files.exists(Paths.get(fileFullPath))) {
throw new BinaryDataNotFoundException(fileFullPath);
}
// 読み込み専用のハードリンクを作成するため、ユニーク名を生成。
String hardLinkName = UniqueNameComposer.compose(fileFullPath);
for (int i = 0; i < maxRetryCount; i++) {
try {
synchronized (fileFullPath) {
// ハードリンクを作成.
hardLinkPath = Files.createLink(Paths.get(hardLinkName), Paths.get(fileFullPath));
}
// ハードリンクからの入力ストリームを取得
InputStream inputStream;
// Perform decryption.
DataCryptor cryptor = new DataCryptor(cellId);
inputStream = cryptor.decode(new FileInputStream(hardLinkPath.toFile()), encryptionType);
hardLinkInput = new BufferedInputStream(inputStream);
// 成功したら終了
return;
} catch (IOException e) {
// 指定回数まではリトライする。
logger.debug(String.format("Creating hard link %s failed. Will try again.", hardLinkName));
try {
Thread.sleep(retryInterval);
} catch (InterruptedException e1) {
logger.debug("Thread interrupted.");
}
}
}
throw new BinaryDataNotFoundException("Unable to create hard link for DAV file: " + hardLinkName);
}
示例7: createLink
import java.nio.file.Files; //导入方法依赖的package包/类
@Override
public void createLink(Path link, Path existing) throws IOException {
triggerEx(existing, "createLink");
Files.createLink(unwrap(link), unwrap(existing));
}
示例8: writeSymEntry
import java.nio.file.Files; //导入方法依赖的package包/类
private void writeSymEntry(Path dstFile, Path target) throws IOException {
Objects.requireNonNull(dstFile);
Objects.requireNonNull(target);
Files.createDirectories(Objects.requireNonNull(dstFile.getParent()));
Files.createLink(dstFile, target);
}